我正在开发一个面向 .NET 3.5 的 32 位应用程序;VS2010是我的开发工具。我的应用程序需要提升权限来处理各种事情,所以我有一个应用程序清单,其中包含以下行:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
因为这是正确的做法,所以我在清单中也有几行表明该应用程序与 Windows 7 和 Windows Vista 兼容:
<!--The ID below indicates application support for Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!--The ID below indicates application support for Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
该应用程序在 Windows 7 和 Windows Vista 上运行良好。它立即弹出 UAC 提示,它不受注册表虚拟化等的影响。清单显然在那里工作。
但是,在 2008 R2 上,这些都不是真的。不出现 UAC 提示。注册表虚拟化发生(我的主要问题)。就好像它完全忽略了我的应用程序清单。我不知道去哪里看或检查什么。我在 7、Vista 和 2008 R2 上运行了完全相同的位,并且每次都得到完全相同的结果。我的 2008 R2 安装完全是普通的,因为它只是一个新安装的用于测试的 VM。
此外,我相当确定 Server 2008 的行为就像 2008 R2 一样,基本上忽略了清单。任何帮助将不胜感激!