19

我正在更新创建的 Windows 通用项目

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

适用于 Windows 10 Insider Preview的 Windows 软件开发工具包 (SDK) :

所以解决方案文件的更改只是VisualStudioVersion14.0.22609.014.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配置成功构建,但现在我开始收到以下错误:

引用的 SDK“Microsoft.NET.CoreRuntime, Version=1.0”不支持正在构建的项目的处理器架构“任何 CPU”。请考虑将项目的目标处理器架构(在 Visual Studio 中,这可以通过配置管理器完成)更改为 SDK 支持的架构之一:“x86、x64、ARM”。

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

这真的是因为从“SDK for Windows 10 Insider Preview”开始的通用项目不再可能使用任何 CPU吗?

更新

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

4

3 回答 3

20

答案来了:

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

  2. 找到<PropertyGroup>包含<TargetPlatformVersion>...的元素接下来,将<Platform>元素的值设置为x86 ...

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

更新 1

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

Deep Dive into XAML and .NET Universal Windows App Development 视频的屏幕截图

更新 2

Visual Studio 2015 RC 修复的错误和已知问题的另一项确认:

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

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

更新 3

好吧,RTM 终于来了,正如预期的那样 -没有 AnyCPU

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

于 2015-05-05T00:01:13.540 回答
3

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

现在我不确定,但 DevDiv 家伙似乎正在收集有关 .NET Native 的“默认性”的反馈,所以如果有足够的反馈,AnyCPU 仍然可能会在当时或 RTM 之后返回。尽管如此,我相信 .NET Native 还是值得的,因为无论如何您通常都通过 Store 部署您的应用程序。

于 2015-05-15T18:42:41.970 回答
2

我假设您正在右键单击您的项目转到属性。在平台下的“构建”的第一行,您有 ARM、x64、x86 和所有平台。在“常规”组框中再往下一点,您有“平台目标”,它为您提供任何 CPU、x86、x64 和 ARM。

如果您正在查看配置管理器(构建->配置管理器),您是对的,只有 ARM、x64、x86、新...和编辑...。如果您单击新建...,“任何CPU”是您可以添加的选项(默认),然后您可以返回并为您的配置选择它。

于 2015-05-01T23:59:44.870 回答