Какой самый простой способ найти открытый ключ-токен сборки?
Самым простым способом, который я могу придумать, будет простой щелчок правой кнопкой мыши, получение открытого ключа, но этой функциональности нет, может быть, для этого есть расширение Visual Studio?
Я использую Visual Studio 2010, если расширение доступно.
Ответы:
Откройте командную строку и введите одну из следующих строк в зависимости от версии Visual Studio и архитектуры операционной системы:
VS 2008 на 32-битной Windows :
VS 2008 на 64-битной Windows:
VS 2010 на 32-битной Windows:
VS 2010 на 64-битной Windows:
VS 2012 на 32-битной Windows:
VS 2012 на 64-битной Windows:
VS 2015 на 64-битной Windows:
Обратите внимание, что для версий VS2012 + приложение sn.exe больше не в bin, а в подпапке. Также обратите внимание, что для 64-битной системы вам нужно указать папку (x86).
Если вы предпочитаете использовать командную строку Visual Studio, просто введите:
где
<assemblyname>
- полный путь к файлу интересующей вас сборки, заключенный в кавычки, если в нем есть пробелы.Вы можете добавить это как внешний инструмент в VS, как показано здесь:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token -дль-а-Стонг названия-assembly.aspx
источник
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
. Примечание. Sn помещается в один дополнительный уровень папки после bin (в NETFX 4.0 Tools).другой вариант:
если вы используете PowerShell, вы можете узнать как:
лайк
и появится как
источник
Если библиотека включена в проект VS, вы можете проверить
.cproj
файл, например:источник
<Reference Include="System.Configuration" />
PublicKeyToken
, так что один взгляд вверх.cproj
кажется наиболее простым решением.Если вы включили сборку в свой проект, вы можете сделать:
источник
AppDomain.CurrentDomain.GetAssemblies()
. Это будет список загруженных сборок в Immediate Window, с версией, культурой и PublicKeyToken для каждой.Вы можете получить это легко с помощью C #
источник
typeof(YourPreferredTypeInThatAssembly).Assembly
илиAssembly.GetAssembly(typeof(YourPreferredTypeInThatAssembly))
и передать это методу, если хотите.Вы можете добавить это как внешний инструмент в Visual Studio следующим образом:
Заглавие:
Команда:
(Путь может отличаться в зависимости от версии)
Аргументы:
И проверьте опцию « Использовать окно вывода ».
источник
Tools
меню, оно будет автоматически работать с любым проектом, выбранным вами в обозревателе решений.Get PublicKeyToken on Solution Explorer Selection
.Самый простой способ для меня - использовать ILSpy .
Когда вы перетаскиваете сборку в ее окно и выбираете сброшенную сборку слева, вы можете увидеть маркер открытого ключа в правой части окна.
(Я также думаю, что в более новых версиях также будет отображаться открытый ключ подписи, если он вам когда-нибудь понадобится ... См. Здесь: https://github.com/icsharpcode/ILSpy/issues/610#issuecomment-111189234 . Хорошая вещь! ;))
источник
1) команда
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn -T {your.dll}
В приведенном выше примере Microsoft SDK находится в C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A. Ваше окружение может отличаться.
2) Чтобы получить токен открытого ключа любого вашего проекта, вы можете добавить sn.exe как часть ваших внешних инструментов в Visual Studio. Шаги показаны в этой ссылке Microsoft: Как: создать инструмент для получения открытого ключа сборки
источник
Если кто-то искал открытый ключ сборки (как и я), а не токен открытого ключа - использование sn.exe прекрасно работает, за исключением того, что вы должны использовать ключ -Tp , который будет возвращать как открытый ключ, так и токен открытого ключа - подробнее по адресу https://msdn.microsoft.com/en-us/library/office/ee539398(v=office.14).aspx .
источник
В качестве альтернативы вы также можете использовать
linq
это -источник
.GetPublicKeyToken()
Альтернативный метод будет, если у вас есть декомпилятор, просто посмотрите его там, они обычно предоставляют открытый ключ. Я смотрел на .Net Reflector, Telerik Just Decompile и ILSpy просто декомпилируют, у них, похоже, отображается токен открытого ключа.
источник
Другим вариантом является использование инструмента с открытым исходным кодом NuGet Package Explorer для этого.
Из пакета Nuget (.nupkg) вы можете проверить PublicKeyToken или перетащить двоичный файл (.dll) в инструмент. Для последнего выберите сначала «Файл -> Новый»
источник
Вы можете использовать Ildasm.exe (IL дизассемблер) для проверки метаданных сборки, которые содержат полное имя.
После MSDN: https://msdn.microsoft.com/en-us/library/2exyydhb(v=vs.110).aspx
источник