miércoles, marzo 30, 2005

Strong Names

Ayer me pidieron un favor, y tuve que recurrir tanto a mi memoria "primaria" como a la "secundaria".

.NET incluye el concepto de Strong Names para las aplicaciones, y aunque no lo hace "obligatorio", claramente es deseable (y de hecho es una de las primeras cosas que el FxCop valida).

En tal sentido, para los desarrollos propios, incluirlo es bastante sencillo, existiendo mecanismos manuales (uso directo de sn.exe), como herramientas integradas al IDE de .NET que facilitan la creación (desde macros a add-in).

El problema que me plantearon es para el caso en que se quiere utilizar Interoperabilidad, por ejemplo con un componente de Office, y se requiere "firmar" el proxy de interoperabilidad.

En tal caso, los pasos son simples (aunque a primera vista manuales):

1) Se ejecuta el sn.exe para generar el archivo con el par de llaves (pública y privada), de la siguiente forma:

sn.exe -k archivo.snk

2) Se ejecuta el programa tlbimp para generar el proxy

tlbimp.exe archivo.dll /keyfile:archivo.snk /out:archivo.interop.dll

3) Se incorpora en la aplicación la referencia a archivo.interop.dll

No hay comentarios.: