5

我在 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”图标覆盖,并且只能以管理员身份运行。在 64bit Server 2008 上,同一个文件没有图标覆盖,可以正常运行。

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

任何想法都感激不尽。

4

2 回答 2

3

您是否尝试过按照这篇文章的建议嵌入清单?

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

答案在帖子底部附近,并附有以下链接:

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

于 2010-01-05T18:28:40.340 回答
1

因为你的 processorArchitecture 属性表明它是 32 位机器。

于 2010-01-06T16:24:40.333 回答