Comment trouver le nom complet d’un assemblage?

Comment puis-je trouver le nom complet de mon assemblage tel que:

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

J’ai réussi à obtenir mon PublicKeyToken en utilisant le sn.exe dans le SDK, mais je souhaite facilement obtenir le nom qualifié complet.

Si vous pouvez charger l’assemblage dans une application .NET, vous pouvez faire:

 typeof(SomeTypeInTheAssembly).Assembly.FullName 

Si vous ne pouvez pas, alors vous pouvez utiliser ildasm.exe et il sera là quelque part:

 ildasm.exe MyAssembly.dll /text 

Ceci est un copier-coller sans vergogne de I Note It Down et est un moyen simple d’obtenir le FQN pour la sortie du projet:

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

Le nouvel outil apparaît sous Tools –> Get Qualified Assembly Name . Lorsque l’élément de menu est sélectionné, le nom de l’assembly est indiqué dans la fenêtre de sortie.

En retard à la fête, mais sur Google pour en savoir plus sur cette question et a trouvé cette page:

Il décrit une fonction PowerShell qui peut le faire. Alors. Je n’ai jamais utilisé de PowerShell auparavant, mais je pensais essayer:

 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> 

Cela fait le truc mentionné dans d’autres réponses en utilisant du code, sauf que vous n’avez pas besoin de créer un projet pour le faire – tapez simplement à l’invite;)

Utilisez Assembly.GetExecutingAssembly () pour obtenir l’assembly actuel, utilisez Assembly.GetEntryAssembly () pour obtenir l’assembly qui a tout démarré ou utilisez Assembly.GetCallingAssembly () pour obtenir l’assembly du code qui a appelé votre fonction (un dans le emstackr).

Une fois que vous avez le bon assembly, utilisez la propriété FullName, comme indiqué dans les autres réponses.

De même, si vous recherchez le nom complet d’un assemblage déjà présent dans le GAC, vous pouvez lancer une invite de commandes Visual Studio (méthode la plus simple pour définir les chemins appropriés) et utiliser gacutil /l pour répertorier tous les assemblys avec leurs noms de domaines respectifs. Utilisez gacutil /l pour filtrer la liste afin de trouver plus facilement ce que vous recherchez.

Si vous chargez l’assemblage (DLL, EXE, etc.) dans Reflector, il vous indiquera le nom fort complet en bas.

Vous pouvez également utiliser open source ILSpy, après avoir chargé votre assembly, son nom complet sera affiché dans les commentaires en haut de la fenêtre de code

JetBrains dotPeek ou Telerik JustDecomstack sont plutôt bons. Ouvrez simplement la DLL et vous avez immédiatement le nom.

Manières de couple

Dans du code:

Assembly.FullName par exemple

 typeof(Thingy).Assembly.FullName 

ou, si c’est un assembly installé, du GAC en utilisant les étapes de cette publication sur msdn .