2010-01-05 9 views
5

Ich habe das folgende Manifest in eine VB6-Anwendung eingebettet.Warum wird mein VB6-Anwendungsmanifest auf 64-Bit-Computern ignoriert?

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

Auf 32-Bit-Server 2008 Maschinen die Datei korrekt mit einem „Admin Shield“ Symbol Overlay angezeigt und kann nur als Administrator ausgeführt werden. Auf 64-Bit-Server 2008 verfügt dieselbe Datei nicht über die Symbolüberlagerung und kann normal ausgeführt werden.

Ich habe versucht, die processorArchitecture = "X86" auf "*" und "ia64" zu ändern und auch das Manifest aus der kompilierten Anwendung zu entfernen und es als externe Manifest, alles ohne Erfolg.

Alle Gedanken dankbar angenommen.

+0

Melden Sie sich mit dem Benutzernamen "Administrator" bei Windows an? Persönlich habe ich festgestellt, dass die UAC-Eingabeaufforderung übersprungen wird, wenn das Programm ausgeführt wird, während es als "Administrator" angemeldet ist. – jveazey

Antwort

1

Da Ihr processor Attribut gibt an, dass es sich um eine 32-Bit-Maschine ist.

+0

Mein Verständnis von anderen lesen ist die ProzessorArchitechture stellt die Architektur, für die die EXE kompiliert wurde, nicht auf dem es läuft. Wenn es Letzteres wäre, würde das bedeuten, dass Sie separate Manifeste für verschiedene Architekturmaschinen benötigten. Außerdem änderte es keinen Unterschied ...! Danke trotzdem. – Matt

Verwandte Themen