2010-01-05 19 views
5

Tengo el siguiente manifiesto incrustado en una aplicación VB6.¿Por qué se ignora el manifiesto de mi aplicación VB6 en máquinas de 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> 

En 32 bits Server 2008 máquinas correctamente el archivo aparece con un icono de superposición "Admin Shield" y sólo se puede ejecutar como administrador. En 64bit Server 2008, el mismo archivo no tiene la superposición de iconos y se puede ejecutar normalmente.

He intentado cambiar el processorArchitecture = "X86" a "*" y "ia64" y también eliminar el manifiesto de la aplicación compilada y tenerlo como un manifiesto externo, todo fue en vano.

Cualquier pensamiento recibido con gratitud.

+0

¿Está iniciando sesión en Windows utilizando el nombre de usuario "Administrador"? Personalmente, descubrí que el aviso de UAC se omite cuando se ejecuta el programa mientras está conectado como "Administrador". – jveazey

Respuesta

1

Debido a que su atributo processorArchitecture indica que es una máquina de 32 bits.

+0

Mi interpretación de otra lectura es el procesador. Architeture representa la arquitectura para la que se compiló .exe, no en la que se ejecuta. Si fuera el último, implicaría que necesita manifiestos separados para diferentes máquinas de arquitectura. ¡Además, cambiarlo no hizo ninguna diferencia ...! Gracias de cualquier manera. – Matt

Cuestiones relacionadas