views:

214

answers:

2

Hi

I have the following manifest embedded in a VB6 application.

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

On 32bit Server 2008 machines the file correctly appears with a "Admin Shield" icon overlay and can only be run as administrator. On 64bit Server 2008 the same file does not have the icon overlay and can be run normally.

I have tried changing the processorArchitecture="X86" to both "*" and "ia64" and also removing the manifest from the compiled application and having it as a external manifest, all to no avail.

Any thoughts gratefully recieved.

+1  A: 

Have you tried embedding your manifest as this post suggest?

http://www.xtremevbtalk.com/showthread.php?t=308937

Answer is near the bottom of the post with a link to:

http://blogs.msdn.com/vistacompatteam/archive/2006/11/13/manifest-and-the-fusion-cache.aspx

Jeff
+1  A: 

Because your processorArchitecture attribute indicates that it is a 32bit machine.

jmoreno
My understanding from other reading is the processorArchitechture represents the architecture that the .exe was compiled for, not which it is running on. If it was the latter it would imply that you needed seperate manifests for different architecture machines. Also, changing it made no difference...! Thanks anyway.
Matt