2

我创建了一个针对 WinPhone 8 和 WinRT 的 Visual Studio 2012 C++/CX 项目。如果有人感兴趣,可以在此处下载解决方案(Hybrid.zip) 。

不幸的是,它在解决方案平台上无法按预期工作。两个平台正常工作:

  • 如果我选择解决方案平台ARM,则会构建本机 ARM WinPhone 二进制文件。

  • 如果我选择解决方案平台x64,则会构建本机 64 位 Windows 二进制文件。

但是我遇到了麻烦Win32。Windows Phone SDK 理解Win32为“用于模拟器的 WinPhone x86 二进制文件”,而 Windows SDK 理解Win32为“Windows x86 本机二进制文件”。同一个项目平台用于两个截然不同的事情!

我尝试过创建一个解决方案平台WinPhoneEmu。但是,我不知道如何创建一个项目平台,让我有两种不同的平台配置选择Win32WinPhoneEmu并且表现得如我所愿。我怎么能那样做?

4

2 回答 2

0

如果我对您的理解正确,在这种情况下,您需要手动选择平台(x86、x64、ARM)和目标(设备、模拟器)。您可以通过在 Visual Studio 工具栏中添加平台选择器来轻松完成此操作。工具 -> 自定义 -> 命令 -> 工具栏 -> 标准,然后添加“解决方案平台”命令。这是一个包含 x86、x64、ARM、任何 CPU 等的组合框。然后你就可以选择,比如说,用于 WP8 模拟器的 x86 + 模拟器 WXGA,或用于 W8 设备的 x86 + 设备:

看我的截图

...以及之后它在VS中的外观:

在此处输入图像描述

于 2013-02-04T11:31:32.117 回答
0

我很确定这是明确不支持的。主要原因是 WinRT 和 Phone 之间的 XAML 语法相似,但不完全兼容(手机是 Silverlight-ish,WinRT 是一些奇怪的新事物)。

针对两者的最佳方法是总共拥有 3 个项目:

  1. 一个面向 Phone 和 WinRT 的可移植类库,所有逻辑都在其中
  2. 链接到 PCL 的 WinRT UI 层
  3. 链接到 PCL 的 Phone 的 UI 层
于 2013-02-04T01:23:27.653 回答