Domanda

Uno dei miei eseguibili scrive alcune configurazioni in un file XML in C: \ Programmi \ MyApp \ config.xml. Deve essere eseguito come amministratore su Vista / Server 2008, altrimenti il ??sistema operativo non gli permetterà di scrivere in quella posizione.

Ho incluso un file manifest denominato config.exe.manifest, per richiedere automaticamente i diritti di amministrazione all'avvio.

Ecco il mio file manifest:

<?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>

L'ho provato su Windows Server 2008, ma il file manifest sembra essere ignorato e l'eseguibile viene avviato senza diritti sufficienti.

È stato utile?

Soluzione 3

Ok funziona quando incorporo il file manifest usando MT.EXE. Ancora non capisco perché non funziona quando fornisco manifest come file separato, ma immagino che l'incorporamento sia una soluzione abbastanza buona.

Altri suggerimenti

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

citato dal link sopra: In Windows XP, Sxs cerca manifest esterni prima di manifest interni. Se viene trovato un manifest esterno, il manifest interno viene ignorato.

In Windows Server 2003 e versioni successive, l'ordine è invertito. Il manifest interno è preferito al manifest esterno.

Se si utilizza manifest esterno e lo scenario funziona in Windows XP, ma non in Windows Server 2003 e versioni successive, verificare che l'eseguibile non abbia un manifest interno

Questo ti farà impazzire: arriverai fino in fondo e pubblicato un articolo e alcune utility per aiutarti a ignorare il tuo manifest: Scopri perché il tuo manifest esterno viene ignorato .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top