6

我的项目中有问题,我有适用于 .Net 4.5、Windows Phone 8、WinRT、MonoTouch 和 MonoDroid 的 PCL,当我尝试构建引用该 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”的引用。

我已经完成了建议的命令(sn -Vr *,b03f5f7f11d50a3a),但没有帮助。我正在使用以下配置文件:

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

2 回答 2

3

如果将兼容性设置为从 .NET 4.5 到 .NET 4.0.3,它将起作用。

于 2013-03-04T14:13:01.473 回答
1

当我在配置文件 104 中遇到类似的错误时,我构建了诸如 System.Windows.dll 和 System.Net.dll 之类的假系统程序集,这些程序集类型转发有问题的类。我已经延迟签署了这些假程序集——幸运的是 MonoDroid 和 MonoTouch 似乎并没有太仔细地检查这些延迟签署。

这些示例位于:https ://github.com/slodge/MvvmCross/tree/v3/PortableSupport

我猜你可以用与 MonoDroid 和 MonoTouch 链接的 2 个 System.Runtime 程序集以及类型转发 System.Object 和 System.Enum 做同样的事情。

希望 Xamarin 的 PCL 支持将很快发布 - 并将包括这些 shim 程序集的正式版本。

于 2013-05-06T19:32:47.047 回答