Añadir Strong Name a DLL de terceros

.Net, General Add comments

Nos podemos encontrar en la situación, en el que al  añadir una librería de terceros a nuestro proyecto, al compilar, se produzca un error como este:

Unable to emit assembly: Referenced assembly ‘albloguera.utils’ does not have a strong name.

Esto es debido a que el assembly al cual estamos añadiendo esta DLL está firmado con un Strong Name. Los emsamblados firmados con Strong Name solo pueden hacer referencia a otras librerías firmadas con Strong Name.

Para solucionar el problemilla, vamos a usar la ventana de comandos de Visual Studio.

Visual Studio Tools

1. Crear el fichero de claves. No es necesario, ya que podemos usar el mismo que ya tenemos en nuestro Assembly.

  • sn -k albloguera.snk

2. Obtemos el MSIL (Microsoft Inmediate Language) del assembly.

  • ildasm albloguera.utils.dll /out:albloguera.utils.il

3. Generamos el nuevo Assembly, añadiendo el KeyFile al MSIL

  • ilasm albloguera.utils.il /dll /key= albloguera.snk

One Response to “Añadir Strong Name a DLL de terceros”

  1. Lobosoft Says:

    Muy buenas, compañero.

    Últimamente parece que ambos andamos “jugueteando”, por un motivo u otro, con ensamblados que tienen o carecen de su correspondiente strong name. Muy interesante tu entrada y el uso de la firma para dar un nombre seguro a DLLs de terceros.

    Precisamente hace unos días leía la completa documentación del proyecto Mono sobre DLLs, strong names y su uso desde el GAC, de lo más interesante, la verdad, y precisamente ayer un tema relacionado aparecía por mi blog.

    Como digo, un tema recurrente estos días.

    ¡Buen fin de semana!

Leave a Reply

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Acceder

Switch to our mobile site