Pregunta

Tenemos un instalador para nuestra aplicación que debe descargarse y ejecutarse con privilegios de administrador, como muchos otros instaladores. Sin embargo, el instalador no tiene el nombre "setup.exe", por lo que Windows no lo detecta automáticamente como que requiere una elevación para ejecutarse.

Cambiar el nombre del instalador para hacer que las cosas se eleven correctamente suena bastante desordenado, francamente. Este artículo habla mucho sobre UAC y la elevación, y dice que Puedes usar un manifiesto para hacer que algo requiera autorización.

Por lo tanto, nos encantaría crear un manifiesto para nuestro instalador. Sin embargo, ¿cómo aseguramos que el manifiesto esté presente? Si el usuario simplemente descarga our_application_v13.exe, ¿cómo nos aseguramos de que también obtengan el manifiesto? AFAIK el manifiesto tendría que ser un archivo denominado " our_application_v13.exe.manifest " en ese caso.

Ya que solo están descargando un archivo de nuestro sitio web, ¿cómo nos aseguramos de que reciban el manifiesto también? ¿Podemos integrarlo en el ejecutable de alguna manera, o marcarlo de otra manera para que requiera elevación? Estamos utilizando una herramienta de instalación desde hace cientos de años que no podemos cambiar, por lo que no tiene ninguna capacidad relevante para esto.

¡Gracias!

¿Fue útil?

Solución

Si la herramienta de instalación le permite cambiar / adjuntar / editar los recursos del archivo EXE generado, puede agregar el archivo de manifiesto como un recurso con un tipo de recurso de 24 (RT_MANIFEST en los encabezados de Windows) y un ID de recurso de 1.

Si la herramienta de instalación no tiene la función integrada para insertar recursos, es posible que tenga que escribir una herramienta para postprocesar el archivo install.exe para insertar el recurso. Busque las API de Windows BeginUpdateResouce y EndUpdateResource. Tienen algunas limitaciones: tienden a no funcionar si el EXE no contiene ningún archivo de recursos, pero la mayoría de los archivos ejecutables de herramientas de instalación contienen al menos un recurso de información de versión.

Además, si la instalación está firmada digitalmente, deberá realizarse después de la inserción del recurso manifiesto.


También, mt. exe incluido con Platform SDK y la mayoría de las versiones de visual studio tiene opciones para incrustar, extraer y fusionar recursos de manifiesto.

Otros consejos

El manifiesto también puede estar en la sección de recursos nativos de la aplicación (dentro del EXE).

Hay Consola de recursos Tuner del software Heaventools.

  

Resource Tuner Console es una herramienta de línea de comandos que permite a los desarrolladores automatizar el procesamiento posterior de su archivo exe de instalación e insertar el recurso manifiesto. Consulte específicamente la página Agregar el manifiesto de la aplicación para obtener más detalles:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top