Как я могу увидеть сильное имя моей сборки? - программирование
Подтвердить что ты не робот

Как я могу увидеть сильное имя моей сборки?

У меня есть проект, и я создал для него сильный ключевой файл.

Как я могу узнать, что такое сильное имя моей сборки? Кажется, это должно быть очевидно, но я не могу найти никакой ссылки на него.

4b9b3361

Ответ 1

Вы можете получить полностью квалифицированное имя с помощью инструмента, такого как Reflector или ILSpy. Выберите сборку, и она должна быть в верхней части. Для XNA в ILSpy:

// C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.dll // Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553

Если вы не хотите использовать эти инструменты, вы можете определить полное имя с помощью Windows Explorer и командной строки Visual Studio.

Сначала щелкните правой кнопкой мыши на сборке DLL → Свойства → Подробности. Здесь вы можете найти имя, версию и культуру своей сборки.

Для открытого ключа запустите команду Visual Studio Command и напишите:

sn -Tp YourAssembly.dll

Он предоставит вам открытый ключ.

Теперь вы можете подделать полностью квалифицированное имя.

Ответ 2

Вы можете использовать инструмент Strong Name, чтобы определить, сильно ли присвоена сборка. В командной строке вы можете сделать это, чтобы убедиться, что это сильная именованная сборка.

sn -v "C:\MyAssemblyPath"

и чтобы получить общедоступный токен, вы можете сделать это

sn -T "C:\MyAssemblyPath"

Вы также можете использовать Reflector или ILSpy найти токен открытого ключа.

Если вы хотите получить полное имя сборки, включая общедоступный токен, вы можете использовать Assembly.FullName.

Assembly.GetExecutingAssembly().FullName;

Ответ 3

Process[] processlist = Process.GetProcesses();

foreach(Process theprocess in processlist)
{
    string strongName = "N/A";
    try
    {
        strongName = Assembly.ReflectionOnlyLoadFrom(theprocess.MainModule.FileName).FullName;
    }
    catch
    {
        // System process?
    }
    Console.WriteLine("Process: {0} ID: {1} Strong Name: {2}", theprocess.ProcessName, theprocess.Id, strongName);

Если вы знаете имя файла, вы можете обработать заголовки PE, чтобы найти сильную подпись имени.   }