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.
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

mayo 29th, 2010 at 18:40
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!