2010-01-05 13 views
5

Ho il seguente manifest incorporato in un'applicazione VB6.Perché il mio manifest di applicazione VB6 viene ignorato su macchine a 64 bit?

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

Su 32 bit Server 2008 macchine Il file viene visualizzato correttamente con un "Admin Shield" icona sovrapposizione e può essere eseguito solo come amministratore. Su Server 64bit 2008 lo stesso file non ha la sovrapposizione di icone e può essere eseguito normalmente.

Ho provato a cambiare il processoreArchitecture = "X86" in "*" e "ia64" e anche rimuovere il manifest dall'applicazione compilata e averlo come un manifest esterno, tutto inutilmente.

Ogni pensiero ricevuto con gratitudine.

+0

Stai accedendo a Windows utilizzando il nome utente "Amministratore"? Personalmente, ho trovato che il prompt UAC è saltato quando si esegue il programma mentre si è loggati come "Amministratore". – jveazey

risposta

1

Perché l'attributo processorArchitecture indica che si tratta di una macchina a 32 bit.

+0

La mia comprensione da altre letture è che il processoreArchitechture rappresenta l'architettura per cui è stato compilato l'exe, non su cui è in esecuzione. Se fosse il secondo, implicherebbe la necessità di manifesti separati per diverse macchine di architettura. Inoltre, cambiando non ha fatto differenza ...! Grazie comunque. – Matt

Problemi correlati