6

我在 OS X 上的 Xamarin Studio 中使用便携式类库 (PCL)。我有两个 PCL 库针对 .NET 4.5、Windows Phone 8、Windows Store Apps、Xamarin.iOS 和 Xamarin.Android。我在我的 iOS、Android 和单元测试项目中引用了这两个库。在 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 多个,而错误只出现在三个类中。

4

2 回答 2

5

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

你必须:

  • 访问 Windows 机器(我使用的是 Windows 8)
  • 抓住C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\Facades\System.Runtime.dll
  • 将其复制到您的 Mac
  • dll从您的每个 iOS 和 Droid 项目中添加对此的引用
于 2013-07-22T10:45:49.717 回答
1

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

于 2013-07-22T00:21:36.593 回答