在使用MonoDevelop(3.0.3.5)创建的解决方案中,我有3个项目:
Portable Library项目不会编译,并在MonoDevelop中的引用(System,System.Core,System.Xml)上显示警告符号。当我展开程序集引用时,会显示以下错误消息:
Assembly not available in .NETPortable 4.0 Profile1 Profile (in Mono 2.10.9)
this forum thread报告了同样的问题。
有没有人遇到同样的问题并且能够解决它?
更新
具有构建错误的演示解决方案可以在GitHub上找到here (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>' requires
10'类型参数(CS0305)
所以似乎不支持2参数泛型重载Func<T, TResult>
?
public void RunInTransaction (Action action) {
使用泛型类型
System.Action<T>' requires
1'类型参数(CS0305)
所以似乎无法找到Action
的非通用版本?
答案 0 :(得分:1)
通过附加的错误消息,我发现了以下SO问题:MonoDevelop: is it possible to switch PCL's compiler?提供了@mhutch的答案,可以强制执行MonoTouch编译器,然后就可以编译代码了。
然而,这只是一种解决方法,因此,仍然可以在Mono,MonoDevelop和MonoTouch中看到适当的可移植类库支持。
如果您还需要适当的便携式类库支持:vote for this feature on Xamarin's UserVoice。
答案 1 :(得分:0)
我在PLP中的.Net引用也有类似的问题,我实际上做的是删除现有的引用并从安装.Net Framework的地方手动添加它们,重新启动MonoDevelop并且我已经启动了又跑了。