Pregunta

Uno de mis ejecutables escribe alguna configuración en un archivo XML en C: \ Archivos de programa \ MyApp \ config.xml. Debe ejecutarse como administrador en Vista / Server 2008, de lo contrario, el sistema operativo no le permitirá escribir en esa ubicación.

Incluí un archivo de manifiesto llamado config.exe.manifest, para solicitar automáticamente los derechos de administración en el lanzamiento.

Aquí está mi archivo de manifiesto:

<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>

Probé esto en Windows Server 2008, pero el archivo de manifiesto parece ignorarse y el ejecutable se inicia sin suficientes derechos.

¿Fue útil?

Solución 3

Ok, funciona cuando incrusto el archivo de manifiesto usando MT.EXE. Todavía no sé por qué no funciona cuando proporciono el manifiesto como un archivo separado, pero supongo que incrustar es una solución lo suficientemente buena.

Otros consejos

http: / /blogs.msdn.com/junfeng/archive/2009/05/11/internal-manifest-vs-external-manifest.aspx

citado desde el enlace de arriba: En Windows XP, Sxs busca el manifiesto externo antes del manifiesto interno. Si se encuentra un manifiesto externo, se ignora el manifiesto interno.

En Windows Server 2003 y versiones posteriores, el orden se invierte. Se prefiere el manifiesto interno sobre el manifiesto externo.

Si usa un manifiesto externo y su escenario funciona en Windows XP, pero no en Windows Server 2003 y versiones posteriores, verifique que el ejecutable no tenga un manifiesto interno

Esto lo volverá loco - llegó al final y publicó un artículo y algunas utilidades para ayudarlo a ignorar su manifiesto: Descubra por qué se ignora su manifiesto externo .

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