2013-03-01 55 views
6

我在我的項目中遇到問題,那裏有.Net 4.5,Windows Phone 8,WinRT,MonoTouch和MonoDroid的PCL,當我嘗試構建具有引用的MonoDroid或MonoTouch項目到PCL錯誤如下:MonoDroid和MonoTouch中的可移植類庫的程序集引用問題

*錯誤1類型'System.Object'是在未引用的程序集中定義的。您必須添加對程序集「System.Runtime, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。

錯誤2類型'System.Enum'在不是 引用的程序集中定義。您必須添加對程序集「System.Runtime, Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。

我已經完成suggested命令(sn -Vr *,b03f5f7f11d50a3a),但它沒有幫助。我正在使用以下配置文件:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETPortable\v4.5\Profile\Profile78 

回答

3

如果您將可壓縮性從.NET 4.5設置爲.NET 4.0.3,它將起作用。

+0

您使用了哪種便攜式配置文件? – user2087302 2013-03-04 14:42:42

+0

我正在使用Profile131。 (.NET> = 4.0.3,Silverlight> = 4,Windows Phone> = 7.5,Windows應用商店應用,XBox),它適用於Xamarin.Android,Xamarin.iOS) – dna 2013-03-04 14:54:04

1

當我在配置文件104中遇到類似的錯誤時,我已經構建了僞造的系統程序集,例如System.Windows.dll和System.Net.dll,它們類型爲正在討論的類。我拖延簽署這些假組件 - 幸運的是,MonoDroid和MonoTouch似乎沒有仔細檢查這些延遲簽名。

的這些例子是在:https://github.com/slodge/MvvmCross/tree/v3/PortableSupport

我想你可以做同樣的事情對MonoDroid的和MonoTouch的和類型轉發System.Object的和System.Enum鏈接2個System.Runtime組件。

希望Xamarin的PCL支持將很快出貨 - 並且將包括這些墊片組件的正式版本。

+0

我嘗試使用Daniel的System.Runtime Shim AsyncFacade項目,但它沒有幫助。我也嘗試將版本從1.0.0.0更改爲4.0.0.0。 – 2013-05-06 19:42:44

+1

來自@DavKean的Tweet也發送了 - 「您是否嘗試了C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5 \ Facades下的那些?」 – Stuart 2013-05-06 19:53:41

+0

我現在就試試。已經回滾了我的更改,因此需要幾分鐘時間。 – 2013-05-06 20:12:23

相關問題