Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.ios MonoDevelop Intellisense未显示PCL中的所有项目_Xamarin.ios_Monodevelop_Portable Class Library - Fatal编程技术网

Xamarin.ios MonoDevelop Intellisense未显示PCL中的所有项目

Xamarin.ios MonoDevelop Intellisense未显示PCL中的所有项目,xamarin.ios,monodevelop,portable-class-library,Xamarin.ios,Monodevelop,Portable Class Library,我目前正在构建一个MonoTouch应用程序,并希望在它和任何其他未来平台之间共享尽可能多的代码。我认为最好的方法是对公共代码使用PCL 问题是,当我尝试引用PCL库中的System.Collection.Generic.List时,MOnoDevelop以红色突出显示列表文本(好像说找不到引用),但当我构建项目时,编译器没有问题,并且正常构建它 例如,我的PCL中可以有以下代码 MD会很好地编译它,这个方法可以从我的MT应用程序中使用 然而,使用它让人沮丧,因为它误导了我,让我认为应该编译的

我目前正在构建一个MonoTouch应用程序,并希望在它和任何其他未来平台之间共享尽可能多的代码。我认为最好的方法是对公共代码使用PCL

问题是,当我尝试引用PCL库中的System.Collection.Generic.List时,MOnoDevelop以红色突出显示列表文本(好像说找不到引用),但当我构建项目时,编译器没有问题,并且正常构建它

例如,我的PCL中可以有以下代码

MD会很好地编译它,这个方法可以从我的MT应用程序中使用

然而,使用它让人沮丧,因为它误导了我,让我认为应该编译的代码不会编译,而且我错过了IntelliSense的许多好处

我已经尝试了列出的解决方案,但没有帮助。希望有人对如何解决这个问题提出建议

出于兴趣考虑,以下是intellisense为System.Collections.Generic命名空间提供的内容(该列表堆栈中有一项不在视图中)


还应该提到的是,我正在使用MonoDevelop v3.0.5、Mono v2.10.9、MT v6.0.6,MonoDevelop 3.x对可移植类库的支持在Linux和Mac上是一种攻击,因为在这些平台上没有任何PCL程序集(Mono没有任何PCL程序集)

当MonoDevelop在Mac或Linux上编译PCL项目时(真实的PCL程序集不可用),它会使用一个被黑客攻击的Microsoft.Portable.CSharp.targets文件来引用MonoTouch或Mono4Android程序集(如果可用),否则它会退回到针对.NET 4.0程序集的编译


您看到的具体问题是由于MonoDevelop无法在您的系统上找到真正的PCL mscorlib/System/etc PCL程序集造成的。

MonoDevelop中是否引用了
mscorlib
?我知道编译器和VS隐式地为它创建了一个引用。@leppie显示的唯一引用是System、System.Core、System.Xml和所有3个都有以下错误:Assembly not available for.NETPortable 4.0 Profile1 profile(在Mono 2.10.9中)
Stack
位于System.dll中。您能否强制尝试添加对
mscorlib
的引用?添加了引用,但没有帮助。即使这真的起作用,也不会有什么帮助,因为这是对4.0完整配置文件的引用,而不是PCL,对吗?对不起,删除我之前评论的第一部分。事实上,将ref添加到mscorlib确实起了作用(我需要重新启动MD才能启动它)。但是,不管怎样,针对mscorlib 4.0的链接是否会破坏使用PCL的目的?