Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否建议始终为Xamarin项目选择目标AnyCPU?_C#_Visual Studio_Xamarin_Build_Anycpu - Fatal编程技术网

C# 是否建议始终为Xamarin项目选择目标AnyCPU?

C# 是否建议始终为Xamarin项目选择目标AnyCPU?,c#,visual-studio,xamarin,build,anycpu,C#,Visual Studio,Xamarin,Build,Anycpu,当尝试除AnyCPU以外的其他目标时,我会遇到更多错误,并且依赖关系更难解决 但是当选择任何CPU目标时,我得到的错误更少 是否建议Xamarin项目始终选择此目标?让我们澄清一下 Xamarin项目是一个非常通用的术语,因此没有任何特定的含义。为了与“平台”因素保持友好关系,您必须分别查看所有三个平台 首先,请记住,您的C#源代码是由Microsoft.NET编译器(例如Roslyn)编译成IL(中间语言)的。尚未使用平台规范。在那一刻,它只是元数据。随后,代码从IL编译为特定于平台的代码。这

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

但是当选择任何CPU目标时,我得到的错误更少

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

让我们澄清一下

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

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

  • 微软Windows(这里我指的是Windows 8.1/Windows Phone 8.1(WinRT通用应用程序)和Windows 10/Windows Phone 10(UWP))。对所有项目使用AnyCPU。在后台,当您构建用于分发的软件包时,将选择除AnyCPU之外的特定平台作为手机软件包。你不必为此担心

  • 谷歌安卓。事情变得有点棘手。您创建的所有类库都可以配置为AnyCPU以及启动项目,但这与实际的特定于平台的编译和链接无关。就VisualStudio元数据而言,这只不过是一个配置组,其他什么都并没有。真正的配置在启动项目配置页面的单独选项卡上
    Android选项->高级
    。在我写这篇文章的时候,实际的选择是armeabi-v7a+x86

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


  • 任何CPU都可以使用。但是,对于iOS的应用程序项目,您必须确保选择iPhone或iPhoneSimulator,因为它们不同。如果我选择iPhone,而不是iPhoneSimulator,是否可以为所有项目选择目标AnyCPU。是的,除应用程序项目外的所有其他项目都可以是AnyCPU。