Windows Universal应用程序 - 没有"任何CPU" Windows 10的配置?

时间:2015-04-30 22:44:43

标签: visual-studio-2015 win-universal-app windows-10

我正在更新使用

创建的Windows Universal项目

适用于Windows 10的Windows软件开发工具包(SDK)技术预览

Windows Software Development Kit (SDK) for Windows 10 Insider Preview

因此解决方案文件的更改只是 VisualStudioVersion 14.0.22609.0 14.0.22823.1

项目文件的更改也很小:

<TargetPlatformVersion>10.0.10030.0</TargetPlatformVersion>
<TargetPlatformMinVersion>10.0.10030.0</TargetPlatformMinVersion>

 <TargetPlatformVersion>10.0.10069.0</TargetPlatformVersion>
 <TargetPlatformMinVersion>10.0.10069.0</TargetPlatformMinVersion>

问题是最初这个通用项目是针对任何CPU 配置成功构建的,但现在我开始收到以下错误:

  

正在构建的项目的处理器架构&#34;任何CPU&#34;不是   引用的SDK&#34; Microsoft.NET.CoreRuntime支持,   版本= 1.0&#34 ;.请考虑更改目标处理器   您的项目的体系结构(在Visual Studio中,这可以完成   通过Configuration Manager)到其中一个架构   SDK支持:&#34; x86,x64,ARM&#34;。

所以消息很清楚该做什么,只想确认一下:

是否真的如此任何CPU 不再适用于从&#34; SDK for Windows 10 Insider Preview&#34;

开始的通用项目

更新

新创建的项目也没有AnyCPU - 默认值为 x86

2 个答案:

答案 0 :(得分:20)

这是answer

  
      
  1. 打开包含C#Windows Universal应用程序的解决方案。您将看到您的项目文件(.csproj文件)需要更新。右键单击项目文件,然后选择编辑此文件。

  2.   
  3. 查找包含<PropertyGroup>的{​​{1}}元素...接下来,将<TargetPlatformVersion>元素的值设置为 x86 ...

  4.   
  5. 查找为 AnyCPU 平台配置的<Platform>元素,作为Condition属性的一部分。删除这些元素及其所有子元素。 Visual Studio 2015 RC中的Windows 10应用程序不支持AnyCPU

  6.   

更新1

从这段视频 - Deep Dive into XAML and .NET Universal Windows App Development转发到 0:32:28 - 似乎有一个(小)机会在版本中找回“任何CPU”: / p>

Screenshot from Deep Dive into XAML and .NET Universal Windows App Development video

更新2

来自Visual Studio 2015 RC fixed bugs and known issues的另一个确认:

  

使用C#和Visual Basic构建的Windows 10 Insider Preview应用程序不支持 AnyCPU 平台配置。此版本的Visual Studio使用.NET Native来构建Windows 10应用程序。 .NET Native将C#和Visual Basic代码编译为本机代码,并且不与CPU无关。

所以在我看来,即使对于VS2015 RTM,回归“AnyCPU”配置的希望也几乎消失了。

更新3

好吧,the RTM is finally here和预期的一样 - no AnyCPU

  

查找为AnyCPU平台配置的元素,作为Condition属性的一部分。删除这些元素和他们所有的孩子。 Visual Studio 2015中的Windows 10应用程序不支持AnyCPU

答案 1 :(得分:3)

嗯, AnyCPU 仍然适用于 DLL Windows运行时组件项目类型。缺少AnyCPU是由于默认情况下在发布配置中对通用Windows应用程序使用.NET Native。您可能知道,.NET Native将应用程序及其所有依赖项链接到一个EXE中,这就是为什么AnyCPU仍然存在于DLL和WinRT组件的原因。

现在我不确定,但DevDiv的人似乎正在收集关于.NET Native的“默认”的反馈,所以如果对此有足够的反馈,AnyCPU仍然可能在RTM之前或之后返回。不过,我相信.NET Native是值得的,因为你通常会通过Store部署你的应用程序。