tool strongly strong name asp.net visual-studio-2008 dll assembly-signing

asp.net - tool - strongly named assembly



Cómo hago un signo de un ensamblado que ya ha sido incorporado en un dll específicamente flute.dll (5)

Después de buscar un poco, encontré esta publicación que explica una forma de hacerlo.

Exerpt:

Desde un símbolo del sistema de VS.NET, ingrese lo siguiente:

  1. Genere un KeyFile: sn -k keyPair.snk
  2. Obtenga MSIL para el conjunto proporcionado: ildasm providedAssembly.dll /out:providedAssembly.il
  3. Renombrar / mover el ensamblaje original: ren providedAssembly.dll providedAssembly.dll.orig
  4. Cree un nuevo ensamblaje a partir de la salida MSIL y su ensamblado KeyFile: ilasm providedAssembly.il / dll / key = keyPair.snk

La razón por la que quiero firmar el dll es porque quiero agregarlo a la memoria caché de Global Assembly. El ensamblado es un motor de análisis css escrito en Java y portado a J #. Utilizo VS2008 por lo que no puedo hacer proyectos de J #. No tiene una clave de nombre fuerte asignada y no tengo ni idea de cómo hacerlo ahora que está construido.

¿Alguien tiene alguna idea?



Gracias especialmente a PJ8 por publicar una respuesta hace 8 años que todavía me salvó hoy. "Mi" ensamblado necesitaba entrar en el GAC pero dependía de SQLite-pcl-net, que a partir de la versión 1.3.1 no tiene un nombre seguro, aunque ahora depende del nombre fuerte SQLitePCLRaw.bundle_green. Así que tuve que firmar SQLite-pcl-net para firmar mi propio ensamblaje en otras palabras. Terminé con un archivo .bat de cradle-to-tumba consolidado a partir de información en esta publicación y en algunos otros lugares a los que viajé hoy. Los "pros" son 1. que este .bat se ejecute en la ubicación del ensamblado que desea firmar 2. muestra al menos una pista sobre dónde podrían ubicarse las tres herramientas en una máquina de desarrollo. 3. muestra todos los pasos en orden. La "estafa" por supuesto es que su millaje puede variar en cuanto a dónde se encuentran realmente ildasm, ilasm y sn en su PC particular. De todos modos, salud.

REM Create a new, random key pair "c:/program files (x86)/microsoft sdks/windows/v8.1a/bin/NETFX 4.5.1 Tools/sn" -k SQLite-net.snk REM Store the key in the container MySQLiteKeys in the strong name Cryptographic Services Provider (CSP). "c:/program files (x86)/microsoft sdks/windows/v8.1a/bin/NETFX 4.5.1 Tools/sn" -i SQLite-net.snk MySQLiteKeys REM Disassemble to Intermediate Language "c:/program files (x86)/microsoft sdks/windows/v8.1a/bin/NETFX 4.5.1 Tools/ildasm" SQLite-net.dll /out:SQLite-net.il REM Rename original file ren SQLite-net.dll SQLite-net.dll.orig REM Reassemble to a strong-named version "c:/Windows/Microsoft.NET/Framework/v2.0.50727/ilasm" SQLite-net.il /dll /key=SQLite-net.snk /out:SQLite-net.dll REM Verify the assembly "c:/program files (x86)/microsoft sdks/windows/v8.1a/bin/NETFX 4.5.1 Tools/sn" -v SQLite-net.dll REM Deletes MySQLiteKeys from the default CSP "c:/program files (x86)/microsoft sdks/windows/v8.1a/bin/NETFX 4.5.1 Tools/sn" -d MySQLiteKeys REM View results pause


La herramienta Strong Name puede volver a firmar un ensamblaje existente, utilizando la opción -R. Sin embargo, por lo que entiendo, el ensamblaje debe estar firmado previamente o firmado con retraso ... no estoy seguro de que pueda usarlo con un ensamblaje sin firmar, pero puede intentarlo


Paso 1: desmontar el ensamblaje

ildasm myTest.dll /out:myTest.il

Paso 2: reensamblar usando tu clave de nombre fuerte

ilasm myTest.il /res:myTest.res /dll /key:myTest.snk /out:myTestSN.dll

Para la verificación puede usar el siguiente comando:

sn -vf myTestSN.dll

¡Espero que esto ayude!