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, j'obtiens une erreur d'exécution disant que cet assembly ne peut pas être chargé, et je pense que c'est parce que j'ai le mauvais PublicKeyToken. Comment rechercher le PublicKeyToken pour mon assembly?
Sinon, est-ce que je vais tout à fait dans le mauvais sens?
.net
dll
.net-assembly
publickeytoken
Matthew Jones
la source
la source
Réponses:
À l'aide de PowerShell , vous pouvez exécuter cette instruction:
La sortie fournira la version , la culture et le PublicKeyToken comme indiqué ci-dessous:
la source
Utilisation de l' utilitaire sn.exe :
ou en chargeant l'assemblage dans le réflecteur .
la source
Si la DLL est ajoutée à votre projet, vous pouvez ouvrir le fichier csproj et voir la balise Reference.
Exemple:
la source
sn -T <assembly>
dans la ligne de commande Visual Studio. Si un assembly est installé dans le cache d'assembly global, il est plus facile de leC:\Windows\assembly
rechercher et de le trouver dans la liste des assemblys GAC.Dans votre cas spécifique, vous pouvez mélanger le nom complet du type avec la référence de l'assembly, vous pouvez jeter un œil à MSDN .
la source
La réponse est très simple, utilisez les outils .NET Framework
sn.exe
. Ouvrez donc l'invite de commandes de Visual Studio 2008, puis pointez sur le dossier de la DLL où vous souhaitez obtenir la clé publique,Utilisez la commande suivante,
Cela vous donnera le jeton de clé publique. N'oubliez pas une chose qui ne fonctionne que si l'assemblage doit être fortement signé.
Exemple
la source
J'utilise l'Explorateur Windows, accédez à C: \ Windows \ assembly, trouvez celui dont j'ai besoin. Dans les propriétés, vous pouvez copier le PublicKeyToken.
Cela ne dépend pas de Visual Studio ou de tout autre utilitaire installé.
la source
En ajoutant simplement plus d'informations, je n'ai pas pu trouver l'utilitaire sn.exe dans les emplacements mentionnés, dans mon cas, c'était dans C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin
la source
Aura pour résultat
la source
Comme l'a dit @CRice, vous pouvez utiliser la méthode ci-dessous pour obtenir une liste des assemblys dépendants avec publicKeyToken
je l'utilise généralement comme un script LinqPad , vous pouvez l'appeler comme
DependencyInfo("@c:\MyAssembly.dll");
du codela source
Vous pouvez également vérifier par la méthode suivante.
Accédez à Exécuter: tapez le chemin d'accès 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, ici vous pouvez voir le jeton de clé publique.
la source