代码之家  ›  专栏  ›  技术社区  ›  Jan Gressmann

UAC:忽略清单文件

  •  2
  • Jan Gressmann  · 技术社区  · 16 年前

    我的一个可执行文件将一些配置写入一个XML文件到c:\program files\myapp\config.xml。它需要在Vista/Server2008上以管理员身份运行,否则操作系统不会让它写入该位置。

    我包含一个名为config.exe.manifest的清单文件,以便在启动时自动请求管理权限。

    这是我的清单文件:

    <?xml version="1.0" encoding="utf-8"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" />
          </requestedPrivileges>
        </security>
      </trustInfo>
    </assembly>
    

    我在WindowsServer2008上尝试了这个方法,但是清单文件似乎被忽略,并且可执行文件是在没有足够权限的情况下启动的。

    3 回复  |  直到 15 年前
        1
  •  3
  •   antony    16 年前

    http://blogs.msdn.com/junfeng/archive/2009/05/11/internal-manifest-vs-external-manifest.aspx

    以上链接引用: 在Windows XP中,SXS在内部清单之前搜索外部清单。如果找到外部清单,则忽略内部清单。

    在Windows Server 2003及更高版本中,顺序相反。内部清单优先于外部清单。

    如果您使用外部清单,并且您的方案在Windows XP(而不是Windows Server 2003及更高版本)中工作,请再次检查可执行文件是否没有内部清单。

        2
  •  2
  •   Darwin    15 年前

    这会让你抓狂-到它的底部,并张贴了一篇文章和一些实用程序,以帮助您的清单被忽略: Find Out Why Your External Manifest Is Being Ignored .

        3
  •  0
  •   Jan Gressmann    16 年前

    好的,当我使用mt.exe嵌入清单文件时,它可以工作。当我将清单作为一个单独的文件提供时,仍然不能解释为什么它不能工作,但是我想嵌入是一个足够好的解决方案。

    推荐文章