Xamarin.ios 可移植类库系统。对象错误

Xamarin.ios 可移植类库系统。对象错误,xamarin.ios,xamarin.android,.net-4.5,portable-class-library,xamarin-studio,Xamarin.ios,Xamarin.android,.net 4.5,Portable Class Library,Xamarin Studio,我在OS X上的Xamarin Studio中使用可移植类库(PCL)。我有两个PCL库,分别针对.NET 4.5、Windows Phone 8、Windows应用商店应用程序、Xamarin.iOS和Xamarin.Android。我在iOS、Android和单元测试项目中引用了这两个库。在3个方面,我发现以下错误: 类型“System.Object”是在未引用的程序集中定义的。必须添加对程序集“System.Runtime,Version=4.0.0.0,Culture=neutral,P

我在OS X上的Xamarin Studio中使用可移植类库(PCL)。我有两个PCL库,分别针对.NET 4.5、Windows Phone 8、Windows应用商店应用程序、Xamarin.iOS和Xamarin.Android。我在iOS、Android和单元测试项目中引用了这两个库。在3个方面,我发现以下错误:

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

代码很简单:

MyClass MyClass=新的MyClass();
该错误在引用PCL的每个项目中发生一次。他们都不是同一类人。我是PCLs的新手。我已经尝试过删除WindowsPhone8(正如我在最后一分钟添加的那样),但问题并没有消失。任何帮助都会受到欢迎

谢谢

更新:

因此,在类中声明的第一个字段(其中类来自PCL项目)出现这种情况。


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

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

我刚刚遇到了这个完全相同的问题,并且具有与您相同的设置。在一篇评论中提到的一条提示(由斯图尔特提出,而斯图尔特又提到了@DavKean的一条推特)为我解答了这个问题

你必须:

  • 访问Windows计算机(我使用的是Windows 8)
  • 抓取
    C:\Program Files(x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll
  • 把它复制到你的Mac电脑上
  • 从每个iOS和Droid项目添加对此
    dll
    的引用

我昨天(2013年7月20日)刚刚在beta频道升级到Xamarin.Android 4.8和Xamarin.iOS 6.3.8。我的印象是,PCL在此版本中得到了支持。我需要切换到Alpha频道吗?好的,Alpha频道目前提供PCL支持only@jonp我仍然在alpha通道上遇到这个问题,它确实修复了错误。然而,这绝对不是应该如何解决的问题。这就引出了一个问题。Mono(Xamarin)使用的System.Runtime.dll是否有自己的实现?我为此提交了一个bug,如果有人好奇,这里是链接。谢谢你的帮助。我遇到了相同的问题-但是在添加System.Runtime.dll VS时对VS使用Monotouch不会再抛出错误-但是在构建错误时仍然会在控制台中抛出错误。你在Windows上试过吗?这是第78版,对吗?是的,这是第78版。
int a = 0;
MyPCLClass _myPCLClass = new MyPCLClass();  //This is where the error appears