我想在 Ubuntu 14.04.3 LTS 上使用 Mono,以便使用 C# 语言编写一些客户端-服务器应用程序。 我关注了this教程并安装了 Mono 在 Ubuntu 上编译和运行 C# .NET 应用程序所需的一切。 然后我按照this安装了MonoDevelop 5.9.6教程实际上安装了三个包:monodevelop、l monodevelop-nunit、monodevelop-versioncontrol(我跳过了数据库包,因为我现在不需要它)。
我在 MonoDevelop 中创建了简单的控制台应用程序,现在我尝试使用一些引用 System.Net.Sockets(和其他)系统库类的代码。我在项目引用中添加了 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 引用已添加到项目中,但内部类不可见。当我输入“System.Net”时。它只允许我选择“System.Net.IPEndPointCollection”而没有其他选择:
编辑: 同样奇怪的是,如果我在“Assembly Browser”窗口中双击 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。
希望这有帮助。
关于Ubuntu 上的 C# 和 MonoDevelop - 缺少系统库内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154254/