Jak znaleźć w pełni kwalifikowaną nazwę zespołu?

Jak mogę znaleźć w pełni kwalifikowaną nazwę mojego zgromadzenia, taką jak:

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

Udało mi się dostać moje publiczne za pomocą sn.exe W SDK, ale chciałbym łatwo uzyskać pełną kwalifikowaną nazwę.

Author: starblue, 2009-03-18

9 answers

Jeśli możesz załadować assembly do aplikacji. NET, możesz to zrobić:

typeof(SomeTypeInTheAssembly).Assembly.FullName

Jeśli nie możesz, możesz użyć ildasm.exe i gdzieś tam będzie:

ildasm.exe MyAssembly.dll /text
 26
Author: Hallgrim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-18 14:56:36

Jest to bezwstydny Kopiuj-Wklej z zapisuję to i jest to prosty sposób na uzyskanie FQN dla wyniku projektu:

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".

Nowe narzędzie pojawia się pod Tools –> Get Qualified Assembly Name. Po wybraniu elementu menu w oknie wyjściowym zostanie podana nazwa złożenia.

 116
Author: David Clarke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-04 21:09:46

Spóźniłem się na imprezę, ale wygooglowałem trochę więcej na ten temat i znalazłem tę stronę:

Opisuje funkcję powershell, która może to zrobić. Więc. Nigdy wcześniej nie używałem PowerShella, ale pomyślałem, że spróbuję:

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>

To robi sztuczkę wspomnianą w innych odpowiedziach za pomocą kodu, z tym, że nie musisz tworzyć projektu, aby to zrobić - po prostu wpisz w prompt;)

 23
Author: Daren Thomas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-07 12:01:50

Użyj Montaż.GetExecutingAssembly () Aby pobrać bieżący assembly, użyj Assembly .GetEntryAssembly () Aby pobrać assembly, od którego wszystko się zaczęło, lub użyć Assembly .GetCallingAssembly () aby uzyskać złożenie kodu, który wywołał twoją funkcję(jeden w stosie).

Gdy już masz odpowiedni zestaw, użyj właściwości FullName, jak wskazano w innych odpowiedziach.

 9
Author: Dave Van den Eynde,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-18 14:27:44

Również jeśli szukasz w pełni kwalifikowanej nazwy złożeń już w GAC, możesz uruchomić wiersz poleceń Visual Studio (najprostszy sposób na ustawienie prawidłowych ścieżek) i użyć gacutil /l, aby wyświetlić listę wszystkich złożeń z odpowiednimi FQN. Użyj gacutil /l <yourassemblyname>, aby filtrować listę, aby łatwiej znaleźć to, czego szukasz.

 6
Author: Per Noalt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-16 16:20:27

Jeśli załadujesz zespół (DLL, EXE, itp.) w Reflektor powie Ci pełną mocną nazwę na dole.

 5
Author: Richard Slater,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-18 14:25:15

Możesz również użyć open source ILSpy, po załadowaniu twojego assembly jego pełna nazwa będzie diplayed in comments at the top of code window

 5
Author: csharpfolk,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-27 09:52:46

JetBrains dotPeek lub Telerik JustDecompile są całkiem dobre. Po prostu otwórz DLL i masz nazwę od razu.

 4
Author: uli78,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-14 15:27:04

Kilka sposobów.

W kodzie:

Montaż.FullName np.

typeof(Thingy).Assembly.FullName

Lub, jeśli jest to zainstalowany zespół, z GAC za pomocą kroków w tym poście na msdn .

 0
Author: joshua.ewer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-18 14:26:11