可移植类库System.Object错误

时间:2013-07-20 19:42:53

标签: xamarin.ios xamarin.android .net-4.5 portable-class-library xamarin-studio

我在OS X上的Xamarin Studio中使用可移植类库(PCL)。我有两个针对.NET 4.5,Windows Phone 8,Windows Store应用程序,Xamarin.iOS和Xamarin.Android的PCL库。我在iOS,Android和Unit测试项目中引用了这两个库。在3个区域中,我收到以下错误:

  

“System.Object”类型在未引用的程序集中定义。您必须添加对程序集'System.Runtime,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的引用。

代码很简单:

MyClass myClass = new MyClass();

在引用PCL的每个项目中都会发生一次错误。他们都不是同一个班级。我是PCL的新手。我已经尝试删除Windows Phone 8(因为我最后一分钟添加了它)但问题并没有消失。任何帮助都会被指定!

谢谢!

更新

所以这发生在类中声明的第一个字段(其中类来自PCL项目)。

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

另一个奇怪的方面是有超过50个类使用这些类,错误只出现在三个类中。

2 个答案:

答案 0 :(得分:5)

我刚遇到了同样的问题,并且设置与您相同。评论中提到的一条提示(由Stuart提出,后者又提到@DavKean的推文){} {}}问题解决了这个问题。

你必须:

  • 访问Windows计算机(我使用的是Windows 8)
  • 抓住C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll
  • 将其复制到Mac
  • 在每个iOS和Droid项目中添加对此dll的引用

答案 1 :(得分:1)

您使用的是哪个版本的Xamarin.Android和Xamarin.iOS?你需要使用Xamarin.Android 4.7.x alphas来支持PCL,或者即将发布的4.8版本。 (同上Xamarin.iOS:你需要一个未来的PCL支持版本,或者使用alpha通道。)