2013-10-30 47 views
1

使用的Xcode 5.0.1與Xamarin Studio版本4.0.13(建立38)和Xamarin.iOS 版本:6.2.4.2 試圖編譯我的項目時,我收到此錯誤:MonoTouch的 - 無法解析ExtensionAttribute

錯誤MT2002:未能解決 「System.Void System.Runtime.CompilerServices.ExtensionAttribute ::構造函數()」 從參考 「mscorlib程序,版本= 4.0.0.0,文化=中性公鑰= b77a5c561934e089」

我該如何解決?

+0

更新到Xamarin.iOS 7.0.2解決了我的問題。 –

回答

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)。