好的,我想我在这里找到了答案。它说:
默认情况下,清单中没有兼容性部分的应用程序将在 Windows 7 和未来的 Windows 版本上接收 Windows Vista 行为
因此,如果您的清单中没有任何内容,Vista 就是您所得到的。阅读本文的其余部分,似乎您能做的最好的事情是获得 Windows 7 而不是 Windows 8,所以也许这是商店应用程序特有的东西?
编辑
好的,我终于找到了 Windows 8 所需的条目:
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
所以试着把它放在清单的兼容性部分。
我知道您使用的是 VS2010,所以这可能会有所不同,但是使用 VS2012,我做了以下操作:
- 创建了一个新的 WPF 应用程序
- 在解决方案资源管理器中右键单击项目并选择添加新项目
- 从列表中选择应用程序清单
一个新的清单被添加到项目中,兼容性设置被注释掉了。未注释所有内容的精简示例如下:
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of all Windows versions that this application is designed to work with.
Windows will automatically select the most compatible environment.-->
<!-- If your application is designed to work with Windows Vista, uncomment the following supportedOS node-->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"></supportedOS>
<!-- If your application is designed to work with Windows 7, uncomment the following supportedOS node-->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- If your application is designed to work with Windows 8, uncomment the following supportedOS node-->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"></supportedOS>
</application>
</compatibility>
</asmv1:assembly>
重建后,应用程序在任务管理器中按预期显示: