¿Cuál es la forma más sencilla de encontrar el token de clave pública de un ensamblado?
La forma más simple que se me ocurre sería hacer clic con el botón derecho del mouse, obtener la clave pública, pero esta funcionalidad no está allí, ¿tal vez hay una extensión de Visual Studio para eso?
Estoy usando Visual Studio 2010, si hay una extensión disponible.
.net
visual-studio
visual-studio-2010
public-key
moi_meme
fuente
fuente
Respuestas:
Abra un símbolo del sistema y escriba una de las siguientes líneas según su versión de Visual Studio y la arquitectura del sistema operativo:
VS 2008 en Windows de 32 bits :
VS 2008 en Windows de 64 bits:
VS 2010 en Windows de 32 bits:
VS 2010 en Windows de 64 bits:
VS 2012 en Windows de 32 bits:
VS 2012 en Windows de 64 bits:
VS 2015 en Windows de 64 bits:
Tenga en cuenta que para las versiones VS2012 +, la aplicación sn.exe ya no está en bin sino en una subcarpeta. Además, tenga en cuenta que para 64 bits debe especificar la carpeta (x86).
Si prefiere usar el símbolo del sistema de Visual Studio, simplemente escriba:
donde
<assemblyname>
hay una ruta de archivo completa al ensamblado que le interesa, rodeado de comillas si tiene espacios.Puede agregar esto como una herramienta externa en VS, como se muestra aquí:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token -for-a-stong-named-assembly.aspx
fuente
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
. Tenga en cuenta que sn está escondido en un nivel de carpeta adicional después de bin (en NETFX 4.0 Tools).otra opción:
si usa PowerShell, puede averiguarlo como:
me gusta
y aparecerá como
fuente
Si la biblioteca está incluida en el proyecto VS, puede verificar el
.cproj
archivo, por ejemplo:fuente
<Reference Include="System.Configuration" />
PublicKeyToken
, por lo que una búsqueda en el.cproj
parece ser la solución más fácil.Si ha incluido el ensamblaje en su proyecto, puede hacer lo siguiente:
fuente
AppDomain.CurrentDomain.GetAssemblies()
. Esto enumerará los ensamblados cargados en la Ventana Inmediata, con Versión, Cultura y PublicKeyToken para cada uno.Puede obtener esto fácilmente a través de C #
fuente
typeof(YourPreferredTypeInThatAssembly).Assembly
oAssembly.GetAssembly(typeof(YourPreferredTypeInThatAssembly))
pasar eso al método si lo desea.Puede agregar esto como una herramienta externa a Visual Studio de la siguiente manera:
Título:
Mando:
(La ruta puede diferir entre versiones)
Argumentos:
Y marque la opción " Usar ventana de salida ".
fuente
Tools
menú, operará automáticamente en cualquier proyecto que haya seleccionado en el Explorador de soluciones.Get PublicKeyToken on Solution Explorer Selection
.La forma más simple para mí es usar ILSpy .
Cuando arrastre y suelte el ensamblaje en su ventana y seleccione el ensamblaje soltado a la izquierda, puede ver el token de clave pública en el lado derecho de la ventana.
(También creo que las versiones más nuevas también mostrarán la clave pública de la firma, si alguna vez la necesita ... Vea aquí: https://github.com/icsharpcode/ILSpy/issues/610#issuecomment-111189234 . ¡Buen material! ;))
fuente
1) El comando es
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn -T {your.dll}
En el ejemplo anterior, el SDK de Microsoft reside en C: \ Archivos de programa \ SDK de Microsoft \ Windows \ v6.0A. Su entorno puede diferir.
2) Para obtener el token de clave pública de cualquiera de sus proyectos, puede agregar sn.exe como parte de sus Herramientas externas en Visual Studio. Los pasos se muestran en este enlace de Microsoft: Cómo: Crear una herramienta para obtener la clave pública de un ensamblado
fuente
En caso de que alguien estuviera buscando la clave pública de ensamblaje (como yo), no el token de clave pública , usar sn.exe funciona muy bien, excepto que debe usar el interruptor -Tp , que devolverá tanto la clave pública como el token de clave pública. Más en https://msdn.microsoft.com/en-us/library/office/ee539398(v=office.14).aspx .
fuente
Como alternativa, también puede usar
linq
así:fuente
.GetPublicKeyToken()
Un método alternativo sería si tienes un descompilador, solo búscalo allí, generalmente proporcionan la clave pública. He mirado .Net Reflector, Telerik Just Decompile e ILSpy simplemente descompilan, parecen tener el token de clave pública que se muestra.
fuente
Otra opción es usar la herramienta de código abierto NuGet Package Explorer para esto.
Desde un paquete Nuget (.nupkg) puede verificar PublicKeyToken o arrastrar el binario (.dll) en la herramienta. Para este último seleccione primero "Archivo -> nuevo"
fuente
Puede usar Ildasm.exe (desensamblador de IL) para examinar los metadatos del ensamblado, que contiene el nombre completo.
Siguiente MSDN: https://msdn.microsoft.com/en-us/library/2exyydhb(v=vs.110).aspx
fuente