Как найти полное имя сборки?

Как узнать полное имя моей сборки, например:

MyNamespace.MyAssembly, version=1.0.3300.0, 
Culture=neutral, PublicKeyToken=b77a5c561934e089

мне удалось получить мой PublicKeyToken с помощью sn.exe в SDK, но я хотел бы легко получить полное квалифицированное имя.

9 ответов


Если вы можете загрузить сборку в приложение .NET, вы можете сделать:

typeof(SomeTypeInTheAssembly).Assembly.FullName

Если вы не можете, то вы можете использовать ildasm.exe и он будет где-то там:

ildasm.exe MyAssembly.dll /text

это бесстыдная копия-вставка из Я Записываю Это и это простой способ получить FQN для вывода проекта:

Open Visual Studio
Go to Tools –> External Tools –> Add
    Title: Get Qualified Assembly Name
    Command: Powershell.exe
    Arguments: -command "[System.Reflection.AssemblyName]::GetAssemblyName(\"$(TargetPath)\").FullName"
    Check "Use Output Window".

новый инструмент появится в разделе Tools –> Get Qualified Assembly Name. При выборе пункта меню в окне вывода указывается имя сборки.


поздно на вечеринку, но погуглил еще об этой проблеме и нашел эту страницу:

он описывает функцию powershell, которая может это сделать. Так. Я никогда раньше не использовал powershell, но я подумал, что попробую:

C:\> cd PATH_TO_ASSEMBLY   
C:\PATH_TO_ASSEMBLY>powershell
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\PATH_TO_ASSEMBLY> [System.Reflection.AssemblyName]::GetAssemblyName('System.Data.SQLite.dll').FullName
System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139
PS C:\PATH_TO_ASSEMBLY>

это делает трюк, упомянутый в других ответах, используя код, за исключением того, что вам не нужно создавать проект для сделайте это - просто введите в командной строке;)


использовать сборка.GetExecutingAssembly() чтобы получить текущую сборку, используйте сборка.GetEntryAssembly() чтобы получить сборку, которая начала все это, или использовать сборка.GetCallingAssembly () чтобы получить сборку кода, который вызвал вашу функцию (один в стеке).

Как только у вас есть правильная сборка, используйте свойство FullName, как указано в других ответах.


также, если вы ищете полное имя для сборки уже в GAC, вы можете запустить командную строку Visual Studio (самый простой способ установить правильные пути) и использовать gacutil /l перечислить все сборки с соответствующими FQNs. Использовать gacutil /l <yourassemblyname> чтобы отфильтровать список, чтобы легче найти то, что вы ищете.


Если вы загружаете сборку (DLL, EXE и т. д.) in отражатель Он скажет вам полное сильное имя внизу.


вы также можете использовать ILSpy с открытым исходным кодом, после загрузки сборки его полное имя будет выводилась в комментариях в верхней части окна кода


JetBrains dotPeek или из Telerik JustDecompile довольно хорошо. Просто открыть DLL и у вас есть имя.


пару способов.

в коде:

сборка.Полное имя например,

typeof(Thingy).Assembly.FullName

или, если его установленная сборка, из GAC с помощью шагов в этом посте на msdn.