6

我在OS X上的Xamarin Studio中使用了可移植類庫(PCL)。我有兩個PCL庫,面向.NET 4.5,Windows Phone 8,Windows Store應用程序,Xamarin.iOS,和Xamarin.Android。我在iOS,Android和單元測試項目中引用這兩個庫。在3個領域我收到以下錯誤:便攜式類庫System.Object錯誤

The type 'System.Object' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

的代碼很簡單:

MyClass myClass = new MyClass(); 

錯誤在每個引用該PCLS項目的一次發生。他們都不是同一班。我是PCL新手。我嘗試刪除Windows Phone 8(因爲我最後一分鐘添加了它),但問題沒有消失。任何幫助將被解僱!

謝謝!

更新:

因此,這與發生在類(其中類是從PCL項目)宣佈第一場。

int a = 0; 
MyPCLClass _myPCLClass = new MyPCLClass(); //This is where the error appears 

另一個奇數的方面是,有使用這些類超過50類,並且誤差只出現在三個等級。

+0

這是簡介78,對嗎? –

+0

是的,它是個人資料78. – JamWils

回答

5

我剛剛遇到了這個完全相同的問題,並且具有與您相同的設置。在評論中提到的小費(由Stuart提供,後者又提到了@DavKean的推文)至this問題爲我解決了。

你必須:

  • 訪問Windows機器上(我用的是Windows 8中)
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll
  • 將它複製到你的Mac
  • 從每到這個dll參考你的iOS和Droid項目
+0

這確實解決了錯誤。但是,這絕對不是應該如何解決的。這引發了一個問題。 Mono(Xamarin)使用的System.Runtime.dll是否有自己的實現?我爲此提出了一個錯誤,如果有人好奇,這裏是鏈接。謝謝您的幫助。 https://bugzilla.xamarin.com/show_bug.cgi?id=13400 – JamWils

+0

我有相同的問題 - 但使用VS的Monotouch。當添加System.Runtime.dll時,不會再拋出錯誤 - 但是在編譯錯誤時仍然會拋出控制檯。 你有沒有在Windows上試過這個? – LewisBenge

1

您正在使用哪個版本的Xamarin.Android和Xamarin.iOS?您需要使用Xamarin.Android 4.7.x alpha版支持PCL,或即將發佈的4.8版。 (同上Xamarin.iOS:你需要一個等待未來發布的PCL支持,或者使用Alpha通道。)

+0

我剛剛在beta頻道上昨天(2013年7月20日)升級到Xamarin.Android 4.8和Xamarin.iOS 6.3.8。我的印象是PCL在這個版本中得到了支持。我需要切換到Alpha通道嗎? – JamWils

+0

AFAIK,PCL支持目前僅在Alpha頻道提供 –

+0

@jonp我仍然遇到alpha通道上的這個問題 –