1

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

错误 MT2002:无法解析来自“mscorlib,版本=4.0.0.0,文化=中性,PublicKeyToken=b77a5c561934e089”的“System.Void System.Runtime.CompilerServices.ExtensionAttribute::.ctor()”引用

我该如何解决?

4

1 回答 1

1

此错误的原因是 .NET 2.0(包括 Silverlight)和 4.0 之间的[Extension]属性从移动System.Core.dllmscorlib.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 和更早版本)构建,则会导致错误。

正如你所发现的,简单的解决方案是更新到最新的 Xamarin.iOS 版本。解决此问题(不更新 Xamarin.iOS)的另一种方法是根据 Xamarin.iOS 6.2 附带的程序集 (BCL) 重建项目的二进制程序集(如果您有源代码)。

于 2013-10-30T23:45:10.650 回答