Ubuntu 上的 C# 和 MonoDevelop - 缺少系统库内容

C# and MonoDevelop on Ubuntu - missing system libraries contents

我想在 Ubuntu 14.04.3 LTS 上使用 Mono,以便使用 C# 语言编写一些客户端-服务器应用程序。 我遵循了 this 教程并在 Ubuntu 上安装了 Mono 需要编译的所有东西和 运行 C# .NET 应用程序。 然后我按照this教程安装了MonoDevelop 5.9.6,实际上安装了三个包:modevelop,l modevelop-nunit,monodevelop-versioncontrol(我跳过了数据库包,因为我现在不需要它)。

我在 MonoDevelop 中创建了简单的控制台应用程序,现在我正在尝试使用一些引用 System.Net.Sockets(和其他)系统库 class 的代码。我在项目的引用中添加了 System.Net.dll,它在 Mono 安装后位于 usr/lib/mono/4.5 下。 显然我无法编译我的应用程序,因为我收到如下错误:

Error CS0234: The type or namespace name `Sockets' does not exist in the namespace `System.Net'. Are you missing an assembly reference? (CS0234) (Communicator.Presentation)

我完全不明白这里发生了什么。我已经通过网络和论坛进行了搜索,但找不到该问题的答案。

我还提供了打开 MonoDevelop 时我的 PC 的屏幕截图,您可以在其中看到 System.Net 引用已添加到项目中,但内部 classes 不可见。当我输入 "System.Net." 时,它只允许我选择 "System.Net.IPEndPointCollection" 而没有别的:

编辑: 奇怪的是,如果我在 "Assembly Browser" windows 中双击 MonoDevelop 中的那个 System.net 引用,我可以看到这个 "System.net.dll" 的内容,尤其是 System.Net.Sockets 在那里...:

不需要 System.Net.dll,因为您正在寻找System.Net.Sockets 命名空间 存在于 System.dll 中。所以你需要添加对System.dll的引用。有关详细信息,请参阅此 link

所以你需要以下参考:

using System;

我还附上了我的 Ubuntu MonoDevelop 快照。在这些快照中,您可以看到我没有任何对 System.Net.dll 的引用,在我的项目引用中,只需要 System.dll。

希望这对您有所帮助。