Ensamblados de nombre seguro (Firma de ensamblados) (C++/CLI)
Este tema explica cómo puede firmar el ensamblado, lo que a menudo se conoce como dar un nombre seguro al ensamblado.
Comentarios
Cuando utilice Visual C++, use las opciones del vinculador para firmar el ensamblado con el fin de evitar problemas relacionados con los atributos CLR para la firma de ensamblados:
Entre las razones para no utilizar los atributos está el hecho de que el nombre clave es visible en los metadatos del ensamblado, lo cual puede significar un riesgo para la seguridad si el nombre de archivo incluye información confidencial. A su vez, el proceso de generación usado por el entorno de desarrollo de Visual C++ invalidará la clave con la que está firmado el ensamblado si utiliza atributos CLR para asignar al ensamblado un nombre seguro y, a continuación, ejecuta una herramienta de procesamiento posterior como mt.exe en el ensamblado.
Si compila desde la línea de comandos, usa opciones del vinculador para firmar el ensamblado y, a continuación, ejecuta una herramienta de procesamiento posterior (como mt.exe), deberá volver a firmar el ensamblado con sn.exe. De forma alternativa, puede compilar el ensamblado y retrasar su firma y, después de ejecutar herramientas de procesamiento posterior, completar la firma.
Si utiliza los atributos de firma durante la compilación en el entorno de desarrollo, puede firmar satisfactoriamente 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 generación pueden ser inferiores si utiliza atributos y un evento posterior a la compilación, en lugar de utilizar las opciones de un vinculador.
Las siguientes opciones del vinculador 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 los ensamblados con nombre seguro, vea Crear y utilizar ensamblados con nombre seguro.