Получение PublicKeyToken сборок .Net

Мне не нравится идея использования Reflection для этого. SecurityManager.

FutureTask является хорошим вариантом в качестве других опций из пакета java.util.concurrent. Это не просто опасно для его отсутствия в некоторых рефакторингах. Мой любимый для простых задач:

    Executors.newSingleThreadExecutor().submit(task);

немного короче, чем создание Thread (задача - Callable или Runnable)

149
задан shA.t 29 August 2018 в 08:03
поделиться

4 ответа

Откройте командную строку и введите одну из следующих строк в соответствии с вашей версией Visual Studio и архитектурой операционной системы :

VS 2008 на 32bit Windows :

"%ProgramFiles%\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -T <assemblyname>

VS 2008 на 64bit Windows :

"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -T <assemblyname>

VS 2010 на 32bit Windows :

"%ProgramFiles%\Microsoft SDKs\Windows\v7.0A\bin\sn.exe" -T <assemblyname>

VS 2010 на 64bit Windows :

"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\bin\sn.exe" -T <assemblyname>

VS 2012 на 32bit Windows :

"%ProgramFiles%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>

VS 2012 на 64bit Windows :

"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>

VS 2015 на 64bit Windows :

"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\sn.exe" -T <assemblyname>

Обратите внимание, что для версий VS2012+, sn. exe больше не находится в папке bin, а в подпапке. Также обратите внимание, что для 64-разрядной версии необходимо указать папку (x86).

Если вы предпочитаете использовать командную строку Visual Studio, просто введите :

sn -T <assembly> 

где <имя сборки> - полный путь к файлу интересующей вас сборки, окруженный кавычками, если в нем есть пробелы.

Вы можете добавить это как внешний инструмент в VS, как показано здесь:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token-for-a-stong-named-assembly.aspx

213
ответ дан 23 November 2019 в 21:59
поделиться

Другой опции должен использовать инструмент с открытым исходным кодом Проводник пакетов NuGet для этого.

От пакета Nuget (.nupkg) Вы мог проверить PublicKeyToken или перетащить двоичный файл (.dll) в инструменте. Для последнего выбора сначала "Файл-> новый"

enter image description here

0
ответ дан 23 November 2019 в 21:59
поделиться

Если вы включили сборку в свой проект, вы можете сделать :

            var assemblies =
                AppDomain.CurrentDomain.GetAssemblies();


            foreach (var assem in assemblies)
            {
                    Console.WriteLine(assem.FullName);
            }
13
ответ дан 23 November 2019 в 21:59
поделиться

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: Как: создать инструмент для получения открытого ключа сборки

5
ответ дан 23 November 2019 в 21:59
поделиться