deployment windows-installer uac code-signing

deployment - Cómo firmar un instalador para evitar la advertencia de UAC de Vista



windows-installer code-signing (1)

Tengo una aplicación que necesito distribuir y quiero firmarla para poder evitar las advertencias de UAC en Vista. Actualmente veo esto ...

UAC http://img694.imageshack.us/img694/7289/uac.jpg

Estoy usando Visual Studio para crear el instalador, pero la aplicación no se escribió en .net. ¿Debo firmar tanto el archivo .msi como el .exe contenidos en el archivo .msi? ¿Qué tipo de clave necesito y dónde debo obtenerla? Actualmente estoy pensando en verisign, aunque son caros, necesito que sea de confianza. Una vez que reciba la llave, ¿cómo firmo? Si comprendo a la derecha, al.exe y signtool.exe son para ensamblados .net, ¿no? ¡Gracias!


Este diálogo en particular es el más aterrador. Hay una que da menos miedo si la aplicación está firmada pero no firmada. (Es decir, solo está firmado por ti). Para evitarlo por completo, de hecho, necesita una firma contraria.

Windows contiene una lista de Autoridades de certificados raíz de confianza (MMC.EXE> Agregar complemento> Certificados> Cuenta de computadora). Algunos de ellos están destinados a la "Firma de código", lo que significa que las Autoridades de certificación pueden firmar su firma. Verisign está en esa lista. Si está trabajando en una Internet corporativa, la firma de la compañía podría estar allí también.

De todos modos, una vez que tenga un certificado firmado por usted, de hecho, use signtool para firmar tanto su aplicación como su instalador. Firmar su propia aplicación es una buena práctica y ayuda mucho en la administración de la configuración. Signtool tiene una GUI, pero también se puede utilizar en el modo CLI. Lo último es útil cuando desea que el proceso de compilación solicite la clave una vez y luego compile todo para el instalador. (¡No inserte la contraseña de su certificado corporativo en su proceso de compilación!).

Pero como dije antes, también puede firmar con una firma no firmada. Esto es bastante útil para realizar pruebas, así como para controlar todo el proceso y realizar compilaciones automatizadas.