为什么我的VB6应用程序清单在64位机器上被忽略了?

时间:2010-01-05 15:24:41

标签: vb6 windows-server-2008 64-bit manifest

我在VB6应用程序中嵌入了以下清单。

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

在32位Server 2008计算机上,文件正确显示,并显示“Admin Shield”图标覆盖,并且只能以管理员身份运行。在64位Server 2008上,同一文件没有图标覆盖,可以正常运行。

我尝试将processorArchitecture =“X86”更改为“*”和“ia64”,并从已编译的应用程序中删除清单并将其作为外部清单,但都无济于事。

任何想法都感激不尽。

2 个答案:

答案 0 :(得分:3)

您是否尝试过嵌入您的清单,因为这篇文章建议?

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

答案位于帖子底部附近,链接指向:

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

答案 1 :(得分:1)

因为您的processorArchitecture属性表明它是32位计算机。