应用程序默认在Windows Vista上下文中运行

时间:2013-04-04 10:45:03

标签: visual-studio-2010 visual-c++ windows-8 operating-system

我正在Windows 8计算机上测试我的桌面应用程序,我注意到任务管理器详细信息视图中有一个名为“操作系统上下文”的新列。这表明我的应用程序在“Windows Vista”环境下运行。

我没有在应用程序清单中指定任何内容来强制应用程序在Visual Studio中的此上下文中运行。该应用程序是Visual C ++应用程序,并在Visual Studio 2010中构建。

不要误会我的意思,应用程序在Windows 8上运行顺畅,所以我不打算解决崩溃或错误。看到这样的事情并想修理它让我感到很恼火。

所以我的问题是如何让我的应用程序在Windows 8下的“Windows 8”上下文中运行?

1 个答案:

答案 0 :(得分:8)

好的,我想I've found the answer here。它说:

  

在其清单中没有兼容性部分的应用程序默认会在Windows 7和未来的Windows版本

上接收Windows Vista行为

因此,如果您的清单中没有任何,Vista就是您所获得的。阅读本文的其余部分,您可以做的最好是获得Windows 7而不是Windows 8,那么这可能是Store Apps特有的东西吗?

编辑

好的,我终于找到了Windows 8所需的条目:

<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>

因此,请尝试将其放入清单的兼容性部分。

我知道你正在使用VS2010,所以这可能会有所不同,但是对于VS2012,我做了以下工作:

  1. 创建了一个新的WPF应用程序
  2. 在“解决方案资源管理器”中右键单击项目,然后选择“添加新项”
  3. 从列表中选择应用程序清单
  4. 在项目中添加了一个新的清单,其中注释了兼容性设置。所有未注释的缩减示例如下:

    <?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>
    

    重建后,应用程序在任务管理器中按预期显示:

    enter image description here