将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()”引用
我该如何解决?
答案 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)。