2

当尝试除 AnyCPU 之外的其他目标时,我会遇到更多错误,并且依赖关系更难以解决。

But when choosing AnyCPU target, I get less errors.

是否建议始终为 Xamarin 项目选择此目标?

4

1 回答 1

4

让我们澄清一下。

Xamarin 项目是一个非常通用的术语,因此没有任何具体含义。为了对“平台”因素友好,您必须分别查看所有三个平台。

首先,请记住,您的 C# 源代码是由 Microsoft .NET 编译器(例如 Roslyn)编译成 IL(中间语言)的。尚未使用平台规范。那时它只是元数据。之后,代码从 IL 编译为特定于平台的代码。那是真正使用平台规范的时候。

  1. Microsoft Windows(这里我指的是 Windows 8.1/Windows Phone 8.1(WinRT 通用应用程序)和 Windows 10/Windows Phone 10 (UWP))。对所有项目使用AnyCPU。在后台,当您构建要分发的包时,将为电话包选择除 AnyCPU 之外的特定平台。您不必为此担心。

  2. 谷歌安卓。那里的事情有点棘手。您制作的所有类库都可以配置为AnyCPU以及 Startup 项目,但这与实际平台特定的编译和链接无关。就 Visual Studio 元数据而言,这只是一个配置组,仅此而已。实际配置在启动项目配置页面的单独选项卡上Android options -> Advanced。目前我写这篇文章的实际选择是armeabi-v7a + x86

  3. 苹果iOS。现在它很棘手,甚至很奇怪。您使用的所有类库都可以为AnyCPU配置,但这只是一个配置组以及 android。同样,这与 android 相同,实际编译和链接将使用启动项目属性中的平台特定配置进行。现在是iOS Build -> Advanced。目前我使用ARMv7 + ARM64进行分发(iPhone 平台选项)和i386 + x86_64进行开发(iPhoneSimulator 平台选项)。

于 2016-05-12T12:43:09.587 回答