Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

typeof(SomeTypeInTheAssembly).Assembly.FullName

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

ildasm.exe MyAssembly.dll /text

Ответ 2

Это бесстыдная скопированная вставка из я Note It Down и простой способ получить 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. Когда выбран пункт меню, имя сборки указывается в окне вывода.

Ответ 3

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

Он описывает функцию 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>

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Ответ 10

Будучи старой школой и предпочитая cmd лучше, чем powershell, я написал для себя этот пакетный скрипт:

@REM fqn.bat <dll_path>
powershell -command "([system.reflection.assembly]::loadfile('%~f1')).FullName"

%~f1 расширяет первый параметр до абсолютного пути, поэтому выполняется:

fqn mydll.dll 

Напечатает полное имя, которое вы хотите.