当 Windows Phone 应用程序处于 ARM 构建配置时,便携式 Class 库不会重新编译

Portable Class Libraries not recompiling when Windows Phone app is in ARM build configuration

我刚刚开始使用 Lumia(以前称为诺基亚)成像库。由于库的某些限制,必须使用 ARM 或 x86 构建配置。

没关系,但我有三个可移植的 class 库供应用程序引用。每当我对这些进行更改时,我都必须将构建配置更改回 Any CPU,然后再更改回 ARM,以便我可以部署到设备。

如果我不将构建配置更改为任何 CPU 并再次返回,那么我所做的更改似乎不会被编译。我的 x86 构建配置如下所示:

因此,看到三个 PCL 只有 ANY CPU 构建配置,我为每个创建了 x86,但构建产生了以下错误:

一个或多个项目目标不支持平台目标 'x86'。

知道如何设置项目以便我不必为 ARM 和 x86 构建配置构建它两次吗?

首先,您应该在要为当前活动平台编译的任何项目中启用 Build 复选框。如果没有,该项目将不再被编译,如果它被任何其他项目引用,他们将回退使用位于 bin/obj 文件夹中的缓存版本;执行 CleanRebuild 将突出显示哪些程序集在未先编译的情况下被引用。

接下来,将平台视为配置选项,允许解决方案中的所有项目使用一个目标架构或其他目标架构构建,具体取决于您要去哪里deploy/run:这在您拥有不支持 AnyCPU 的本机代码项目,并且您想在模拟器 (x86) 或实际设备 (ARM) 中测试它们。另外,不要将平台名称与项目正在构建的实际架构混淆;它默认给出架构的名称,但您可以将其更改为任何您喜欢的名称(例如,Xamarin iOS 使用 iPhone 用于物理设备的 ARM 构建,而 iPhoneSimulator 用于 x86 模拟器.

最后,请记住,一旦您将本机代码 projects/libraries 添加到您的解决方案中,就必须停止在任何引用它们的项目中使用 AnyCPU 架构;必须为特定平台(x86/x64ARM)构建的项目可以引用 AnyCPU 程序集,但反之则不行。