Как найти полное имя сборки?
Как узнать полное имя моей сборки, например:
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.