Quel est le moyen le plus simple de trouver le jeton de clé publique d'un assembly?
Le moyen le plus simple auquel je puisse penser serait un simple clic droit, obtenir la clé publique, mais cette fonctionnalité n'est pas là, peut-être qu'il existe une extension Visual Studio pour cela?
J'utilise Visual Studio 2010, si une extension est disponible.
Réponses:
Ouvrez une invite de commande et tapez l'une des lignes suivantes en fonction de votre version de Visual Studio et de l'architecture du système d'exploitation:
VS 2008 sur Windows 32 bits :
VS 2008 sur Windows 64 bits:
VS 2010 sur Windows 32 bits:
VS 2010 sur Windows 64 bits:
VS 2012 sur Windows 32 bits:
VS 2012 sur Windows 64 bits:
VS 2015 sur Windows 64 bits:
Notez que pour les versions VS2012 +, l'application sn.exe n'est plus dans le bac mais dans un sous-dossier. Notez également que pour 64 bits, vous devez spécifier le dossier (x86).
Si vous préférez utiliser l'invite de commande Visual Studio, tapez simplement:
où
<assemblyname>
est un chemin d'accès complet au fichier de l'assembly qui vous intéresse, entouré de guillemets s'il contient des espaces.Vous pouvez l'ajouter en tant qu'outil externe dans VS, comme indiqué ici:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token -pour-un-assemblage-nommé-stong.aspx
la source
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
. Remarque sn est caché dans un niveau de dossier supplémentaire après bin (dans NETFX 4.0 Tools).une autre option:
si vous utilisez PowerShell, vous pouvez découvrir comme:
comme
et apparaîtra comme
la source
Si la bibliothèque est incluse dans le projet VS, vous pouvez vérifier le
.cproj
fichier, par exemple:la source
<Reference Include="System.Configuration" />
PublicKeyToken
, donc une seule recherche dans le.cproj
semble être la solution la plus simple.Si vous avez inclus l'assemblage dans votre projet, vous pouvez faire:
la source
AppDomain.CurrentDomain.GetAssemblies()
. Cela listera les assemblys chargés dans la fenêtre Exécution, avec Version, Culture et PublicKeyToken pour chacun.Vous pouvez l'obtenir facilement via c #
la source
typeof(YourPreferredTypeInThatAssembly).Assembly
ouAssembly.GetAssembly(typeof(YourPreferredTypeInThatAssembly))
et transmettre cela à la méthode si vous le souhaitez.Vous pouvez l'ajouter en tant qu'outil externe à Visual Studio comme ceci:
Titre:
Commander:
(Le chemin peut différer entre les versions)
Arguments:
Et cochez l' option " Utiliser la fenêtre de sortie ".
la source
Tools
menu, il fonctionnera automatiquement sur le projet que vous avez sélectionné dans l'Explorateur de solutions.Get PublicKeyToken on Solution Explorer Selection
.Le moyen le plus simple pour moi est d'utiliser ILSpy .
Lorsque vous faites glisser et déposez l'assemblage sur sa fenêtre et sélectionnez l'assemblage déposé sur la gauche, vous pouvez voir le jeton de clé publique sur le côté droit de la fenêtre.
(Je pense aussi que les nouvelles versions afficheront également la clé publique de la signature, si jamais vous en avez besoin ... Voir ici: https://github.com/icsharpcode/ILSpy/issues/610#issuecomment-111189234 . Bon produit! ;))
la source
1) La commande est
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn -T {your.dll}
Dans l'exemple ci-dessus, le Kit de développement logiciel (SDK) Microsoft réside dans C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A. Votre environnement peut différer.
2) Pour obtenir le jeton de clé publique de l'un de vos projets, vous pouvez ajouter sn.exe dans le cadre de vos outils externes dans Visual Studio. Les étapes sont indiquées dans ce lien Microsoft: Comment: créer un outil pour obtenir la clé publique d'un assembly
la source
Au cas où quelqu'un recherchait la clé publique d' assemblage (comme moi), pas le jeton de clé publique - l'utilisation de sn.exe fonctionne très bien, sauf que vous devez utiliser le commutateur -Tp , qui renverra à la fois la clé publique et le jeton de clé publique - plus à https://msdn.microsoft.com/en-us/library/office/ee539398(v=office.14).aspx .
la source
Comme alternative, vous pouvez également utiliser
linq
comme ceci -la source
.GetPublicKeyToken()
Une autre méthode serait si vous avez un décompilateur, recherchez-le simplement là-bas, ils fournissent généralement la clé publique. J'ai regardé .Net Reflector, Telerik Just Decompile et ILSpy décompilent simplement, ils semblent afficher le jeton de clé publique.
la source
Une autre option consiste à utiliser l'outil open source NuGet Package Explorer pour cela.
À partir d'un package Nuget (.nupkg), vous pouvez vérifier le PublicKeyToken ou faire glisser le binaire (.dll) dans l'outil. Pour ce dernier, sélectionnez d'abord "Fichier -> nouveau"
la source
Vous pouvez utiliser Ildasm.exe (désassembleur IL) pour examiner les métadonnées de l'assembly, qui contiennent le nom complet.
Après MSDN: https://msdn.microsoft.com/en-us/library/2exyydhb(v=vs.110).aspx
la source