Ensamblados de nombre seguro (Firma de ensamblados) (C++/CLI)
En este tema se describe cómo puede firmar su ensamblado, lo que se conoce como dar un nombre seguro a su ensamblado.
Comentarios
Al usar Visual C++, use las opciones del enlazador para firmar el ensamblado con el fin de evitar problemas relacionados con los atributos CLR para la firma de ensamblados:
Los motivos por los que no se usan los atributos incluyen el hecho de que el nombre de clave es visible en los metadatos del ensamblado, lo que puede ser un riesgo de seguridad si el nombre de archivo incluye información confidencial. Además, el proceso de compilación usado por el entorno de desarrollo de Visual C++ invalidará la clave con la que se firma el ensamblado si usa atributos CLR para asignar un nombre seguro a un ensamblado y, a continuación, ejecutará una herramienta de posprocesamiento como mt.exe en el ensamblado.
Si compila en la línea de comandos, usa las opciones del enlazador para firmar el ensamblado y, a continuación, ejecuta una herramienta posterior al procesamiento (como mt.exe), deberá volver a firmar el ensamblado con sn.exe. Como alternativa, puede compilar y retrasar la firma del ensamblado y después de ejecutar herramientas posteriores al procesamiento, completar la firma.
Si usa los atributos de firma al compilar en el entorno de desarrollo, puede firmar correctamente el ensamblado llamando explícitamente a sn.exe (Sn.exe (Herramienta de nombre seguro)) en un evento posterior a la compilación. Para obtener más información, vea Especificar eventos de compilación. Los tiempos de compilación pueden ser menores si usa atributos y un evento posterior a la compilación, en comparación con el uso de opciones del enlazador.
Las siguientes opciones del enlazador admiten la firma de ensamblados:
/KEYFILE (Especificar una clave o par de claves para firmar un ensamblado)
/KEYCONTAINER (Especificar un contenedor de claves para firmar un ensamblado)
Para obtener más información sobre ensamblados seguros, consulte Creación y uso de ensamblados con nombre seguro.