5

在我使用 MonoDevelop (3.0.3.5) 创建的解决方案中,我有 3 个项目:

  1. 带有 UI 的 MonoTouch 项目,
  2. 带有 iOS 特定代码的 MonoTouch 库项目,
  3. 具有域模型的便携式库项目。

Portable Library 项目无法编译,并在 MonoDevelop 中的引用(System、System.Core、System.Xml)上显示警告符号。当我展开程序集引用时,会显示以下错误消息:

Assembly not available in .NETPortable 4.0 Profile1 Profile (in Mono 2.10.9)

此论坛主题中报告了相同的问题。

有没有人有同样的问题并且能够解决它?

更新

可以在 GitHub 上找到带有构建错误的演示解决方案(bgever/plp-build-error)

我发现虽然显示了错误消息,但基本代码可以编译并按预期工作。

但是,阻止演示解决方案编译的两种构建错误变体是:

public T Get<T> (Expression<Func<T, bool>> predicate) where T : new() { 

使用通用类型System.Func<T1,T2,T3,T4,T5,T6,T7,T8,T9,TResult>' requires10' 类型参数 (CS0305)

所以似乎Func<T, TResult>不支持 2 参数泛型重载?

public void RunInTransaction (Action action) {

使用泛型类型System.Action<T>' requires1' 类型参数 (CS0305)

所以似乎Action找不到非泛型版本?

4

2 回答 2

1

通过附加错误消息,我发现了以下 SO 问题:MonoDevelop:是否可以切换 PCL 的编译器?通过@mhutch 提供的答案,可以强制执行 MonoTouch 编译器,然后能够编译代码。

然而,这只是一种解决方法,因此,在 Mono、MonoDevelop 和 MonoTouch 中看到适当的可移植类库支持仍然会很棒。

如果您还需要适当的可移植类库支持:在 Xamarin 的 UserVoice 上投票支持此功能

于 2012-09-02T11:14:12.630 回答
0

我对 PLP 中的 .Net 引用也有类似的问题,我实际上所做的是删除现有引用并从安装 .Net Framework 的位置手动添加它们,重新启动 MonoDevelop,然后我又启动并运行了.

于 2012-09-12T22:34:27.143 回答