2009-09-18 5 views
2

L'un de mes exécutables écrit une configuration dans un fichier XML dans C: \ Program Files \ MyApp \ config.xml. Il doit fonctionner en tant qu'administrateur sur Vista/Server 2008, sinon le système d'exploitation ne le laissera pas écrire à cet emplacement.UAC: le fichier manifeste est ignoré

J'ai inclus un fichier manifeste nommé config.exe.manifest, pour demander automatiquement les droits d'administration au lancement.

Voici mon fichier manifeste:

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

J'ai essayé sur Windows Server 2008, mais le fichier manifeste semble être ignoré et l'exécutable est lancé sans droits suffisants.

Répondre

0

Ok ça marche quand j'incorpore le fichier manifeste en utilisant MT.EXE. Je ne sais toujours pas pourquoi cela ne fonctionne pas lorsque je fournis le fichier manifeste sous la forme d'un fichier distinct, mais je suppose que l'intégration est une bonne solution.

+1

antony a raison: Vérifiez que vous n'avez pas de * manifest * intégré dans l'exécutable - le chargeur de Windows utilisera alors le fichier externe. –

3

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

cité de lien ci-dessus: Sous Windows XP, SXS recherches manifeste externe avant interne manifeste. Si un manifeste externe est trouvé, le manifeste interne est ignoré.

Dans Windows Server 2003 et versions ultérieures, l'ordre est inversé. Le manifeste interne est préféré au manifeste externe.

Si vous utilisez manifeste externe, et votre scénario fonctionne sous Windows XP, mais pas Windows Server 2003 et plus tard, s'il vous plaît vérifier deux fois exécutable ne dispose pas d'un manifeste

Questions connexes