Monotouch - 无法解析ExtensionAttribute

时间:2013-10-30 21:26:39

标签: xamarin.ios

将Xcode 5.0.1与Xamarin studio版本4.0.13(版本38)和Xamarin.iOS一起使用 版本:6.2.4.2 我在尝试编译项目时收到此错误:

  

错误MT2002:无法解析“mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”中的“System.Void System.Runtime.CompilerServices.ExtensionAttribute ::。ctor()”引用

我该如何解决?

1 个答案:

答案 0 :(得分:1)

此错误的原因是在.NET 2.0(包括Silverlight)和4.0之间,[Extension]属性从System.Core.dll移至mscorlib.dll

Xamarin.iOS 6.2(及更早版本)基于Silverlight的超集(又名2.1配置文件)。因此,[Extension]属性位于System.Core.dll

自Xamarin.iOS 6.3+以来,该产品重新基于Mono 3.0,并且配置文件已更新为使用较新的4.0 / 4.5配置文件。现在[Extension]属性位于mscorlib.dll

在您的情况下,您根据较新的(4.0)配置文件编译了二进制程序集。该程序集引用了mscorlib, Version=4.0.0.0, ...来查找[Extension],如果针对较旧的Xamarin.iOS(6.2及更早版本)构建,则会导致错误。

当您发现 easy 解决方案是更新到最新的Xamarin.iOS版本时。解决此问题的另一种方法(不更新Xamarin.iOS)将重建(如果您有源代码)项目的二进制程序集与Xamarin.iOS 6.2附带的程序集(BCL)。