277 votes

Comment trouver le PublicKeyToken pour une dll particulière?

J'ai besoin de recréer un fournisseur dans mon fichier web.config qui ressemble à ceci:

 <membership defaultProvider="AspNetSqlMemProvider">
    		<providers>
                <clear/>
    			<add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0" name="AspNetSqlMemProvider" type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
    		</providers>
    	</membership>
 

Cependant, je reçois une erreur d'exécution indiquant que cet assemblage ne peut pas être chargé, et je pense que c'est parce que j'ai le mauvais PublicKeyToken. Comment rechercher PublicKeyToken pour mon assemblage?

Sinon, est-ce que je me trompe complètement?

432voto

danielB Points 51

À l'aide de PowerShell , vous pouvez exécuter cette instruction:

([system.reflection.assembly]::loadfile("c:\MyDLL.dll")).FullName

La sortie fournira la version, la culture et publicKeyToken comme indiqué ci-dessous:

MyDLL, version = 1.0.0.0, Culture = neutre, PublicKeyToken = 669e0ddf0bb1aa2a

169voto

Darin Dimitrov Points 528142

Utilisation de l'utilitaire sn.exe :

 sn -T YourAssembly.dll
 

ou charger l'assemblage dans Reflector .

26voto

Joaquim Rendeiro Points 1132

sn -T <assembly> en ligne de commande Visual Studio. Si un assembly est installé dans le Global Assembly Cache, il est plus facile d'accéder à C:\Windows\assembly et de le trouver dans la liste des assemblys GAC.

Sur votre cas spécifique, vous pouvez mélanger le nom complet de type avec la référence d'assembly, vous pouvez jeter un oeil sur MSDN .

13voto

La réponse est très simple d'utilisation .NET Framework tools sn.exe. Donc, ouvrez Visual Studio 2008 Invite de Commande et puis point à la dll du dossier que vous souhaitez obtenir la clé publique,

Utilisez la commande suivante

sn –T myDLL.dll

Cela vous donnera le jeton de clé publique. N'oubliez pas une chose, cela ne fonctionne que si l'assemblée doit être fortement signé.

Exemple

C:\WINNT\Microsoft.NET\Framework\v3.5>sn -T EdmGen.exe

Microsoft (R) .NET Framework Nom Fort Version de l'Utilitaire de 3.5.21022.8
Copyright (c) Microsoft Corporation. Tous droits réservés.

Jeton de clé publique est b77a5c561934e089

0voto

Moniv Points 123

Vous pouvez également vérifier par la méthode suivante.

Aller à Exécuter: tapez le chemin de la DLL pour laquelle vous avez besoin d'une clé publique. Vous trouverez 2 fichiers: 1. __AssemblyInfo_.ini 2. Fichier DLL

Ouvrez ce fichier __AssemblyInfo_.ini dans le bloc-notes, où vous pouvez voir le jeton de clé publique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X