UAC:清单文件被忽略
问题描述:
我的一个可执行文件将一些配置写入到C:\ Program Files \ MyApp \ config.xml的XML文件中。它需要在Vista/Server 2008上以管理员身份运行,否则操作系统不会让它写入该位置。UAC:清单文件被忽略
我包含一个名为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>
我想这在Windows Server 2008上,但清单文件似乎被忽略和可执行文件没有足够的权限启动。
答
好吧,它使用MT.EXE嵌入清单文件。当我将清单作为单独的文件提供时,仍然不要解释为什么它不起作用,但我想嵌入是一个足够好的解决方案。
答
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及更高版本,请仔细检查可执行文件不具有内部清单
antony是对的:检查你没有任何内置的可执行文件 - 然后Windows的loader会使用外部的。 – 2009-11-10 19:57:28