2010-01-05 13 views
5

J'ai le manifeste suivant intégré dans une application VB6.Pourquoi mon manifeste d'application VB6 est-il ignoré sur les machines 64 bits?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> 
    <assemblyIdentity version="1.0.0.0" 
processorArchitecture="X86" 
name="ExeName" 
type="win32"/> 
<description>elevate execution level</description> 
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> 
    <security> 
    <requestedPrivileges> 
     <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> 
    </requestedPrivileges> 
    </security> 
</trustInfo> 
</assembly> 

Sur 32bit serveur machines 2008, le fichier apparaît correctement avec une icône « Admin Shield » superposition et ne peut être exécuté en tant qu'administrateur. Sur le serveur 64 bits 2008, le même fichier n'a pas de superposition d'icônes et peut être exécuté normalement.

J'ai essayé de changer le processorArchitecture = "X86" à la fois "*" et "ia64" et en enlevant aussi le manifest de l'application compilée et l'ayant comme manifeste externe, tout pour vain.

Toute pensée reçue avec reconnaissance.

+0

Etes-vous connecté à Windows à l'aide du nom d'utilisateur "Administrateur"? Personnellement, j'ai trouvé que l'invite UAC est ignorée lors de l'exécution du programme en étant connecté en tant que "Administrateur". – jveazey

Répondre

1

Parce que votre attribut processorArchitecture indique qu'il est une machine 32 bits.

+0

Ma compréhension d'une autre lecture est le processeurArchitechture représente l'architecture pour laquelle le fichier .exe a été compilé, pas sur lequel il s'exécute. Si c'était le dernier, cela impliquerait que vous avez besoin de manifestes séparés pour différentes machines d'architecture. De plus, le changer n'a fait aucune différence ...! Merci quand même. – Matt