说明文件开始只是简单地描述执行依赖性,之后其应用越来越多。Windows Vista 和 Windows 7 还加入了一些新的说明文件元素:与并行执行无关的给你。随着软件虚拟性和应用程序管理功能越来越重要,说明文件的使用也越来越多,用于指定应用程序营运的环境,满足其所需的安全和性能。以下为一些较新的设置,这些设置可以通过应用程序的说明文件来控制。
应用程序所需的用户访问协议(User Access Control,简称 UAC)等级。有些应用程序为了正确地执行需要完全的管理员权限,对于重要的应用程序,说明文件正是一个合适的地方,可以用来请求 Windows 提示用户权限的增加。
ClickOnce 应用程序。对于 ClickOnce 应用,这些应用程序具有一种简单的安装和升级的生命周期,对传统的高权重的 MSI 安装方式的依赖更少,应用程序自身实际上是由说明文件来描述。除了依赖性的元素,ClickOnce 应用还需要指定 entryPoint 元素和 trustInfo 元素,前者用于详细地描述运行应用程序所需的执行和命令行参数,后者用于详细描述应用程序安全需求。Visual C++ 2010 不支持 IDE 内部集成的 ClickOnce 说明文件,但是在这篇 MSDN 文章中,可以找到所需的详细步骤。
DPI 虚拟化。如果在操作系统等级上激活了高 DPI 支持,并且应用程序的说明文件未表明该应用程序支持高 DPI,那么 Windows 将 在虚拟窗口中运行应用程序。DPI 虚拟化会造成一些显示上模糊,好像显示器使用了不恰当的分辨率,因此需要开发能够正确处理高 PDI 的应用程序并在说明文件中进行相关的描述。
兼容设置。每个版本的 Windows 在操作系统功能方面都存在着各种各样的改变。这是为了满足用户的预期,正如性能和稳定性的提升是所有软件升级的卖点。不幸的是,这些改善造成某些应用程序内置了对于以往性能的预期,从而会发生崩溃或者无法正确的运行,如果这种问题的影响较广或者受到了很大的关注,那么用户以及机构对于 Windows 升级的兴趣就会显著地减低。这种情况与最初引入说明文件的 SxS 问题非常类似, 所以说明文件应指定应用程序所预期的操作性版本行为。
为了到达这一目的,Windows 7 引入了一个信息兼容性说明文件,利用该元素可以“选择加入(opt-in)”的方式使用新的 Windows 7 行为。如果应用程序的说明文件不包含该元素,或者该元素为指定 Windows 7 为支持的操作系,那么将使用的 Window Vista 的行为。SDK 文档中列出了该设置所控制的所有功能。激活 Windows 7 行为的实际说明设置如下:
在 SxS 设置之外,说明文件中的 UAC 设置由图 2 中的 Linker |Manifest 属性页面控制。该 UAC 执行等级指定了应用程序执行所需的许可权限,而且 UAC Bypass UI Protection 设置指定了该应用程序是否要求与高许可权限的桌面窗口,如屏幕键盘,进行互动。
Visual C++ 应用程序的 UAC Manifest 设置