Necesito recrear un proveedor en mi archivo web.config que se parece a esto:
<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>
Sin embargo, recibo un error de tiempo de ejecución que dice que este ensamblado no se puede cargar, y creo que es porque tengo el PublicKeyToken incorrecto. ¿Cómo busco el PublicKeyToken para mi ensamblado?
Alternativamente, ¿voy completamente por el camino equivocado con esto?
.net
dll
.net-assembly
publickeytoken
Matthew Jones
fuente
fuente
Respuestas:
Usando PowerShell , puede ejecutar esta declaración:
La salida proporcionará la Versión , Cultura y PublicKeyToken como se muestra a continuación:
fuente
Utilizando utilidad sn.exe :
o cargando el ensamblaje en Reflector .
fuente
Si tiene la DLL agregada a su proyecto, puede abrir el archivo csproj y ver la etiqueta de Referencia.
Ejemplo:
fuente
sn -T <assembly>
en la línea de comando de Visual Studio. Si se instala un ensamblaje en la caché de ensamblados global, es más fácil ir a élC:\Windows\assembly
y encontrarlo en la lista de ensamblajes GAC.En su caso específico, es posible que esté mezclando el nombre completo del tipo con la referencia del ensamblaje, es posible que desee echar un vistazo a MSDN .
fuente
La respuesta es muy simple: use las herramientas de .NET Framework
sn.exe
. Abra el símbolo del sistema de Visual Studio 2008 y luego apunte a la carpeta de la DLL que desea obtener la clave pública,Usa el siguiente comando,
Esto le dará el token de clave pública. Recuerde una cosa que esto solo funciona si el ensamblaje tiene que estar fuertemente firmado.
Ejemplo
fuente
Utilizo el Explorador de Windows, navego a C: \ Windows \ assembly, encuentro el que necesito. Desde las Propiedades, puede copiar PublicKeyToken.
Esto no depende de Visual Studio ni de ninguna otra utilidad instalada.
fuente
Simplemente agregando más información, no pude encontrar la utilidad sn.exe en las ubicaciones mencionadas, en mi caso fue en C: \ Archivos de programa (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin
fuente
Resultará en
fuente
Como dijo @CRice, puede usar el siguiente método para obtener una lista de ensamblaje dependiente con publicKeyToken
generalmente lo uso como un script de LinqPad , puede llamarlo como
DependencyInfo("@c:\MyAssembly.dll");
del códigofuente
También puede verificar siguiendo el método.
Vaya a Ejecutar: escriba la ruta de la DLL para la que necesita la clave pública. Encontrará 2 archivos: 1. __AssemblyInfo_.ini 2. Archivo DLL
Abra este archivo __AssemblyInfo_.ini en el bloc de notas, aquí puede ver el token de clave pública.
fuente