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

标签 c# ubuntu mono monodevelop

我想在 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”而没有其他选择: screenshot from MonoDevelop

编辑: 同样奇怪的是,如果我在“Assembly Browser”窗口中双击 MonoDevelop 中的 System.net 引用,我可以看到该“System.net.dll”的内容,尤其是 System.Net.Sockets 存在于此...: enter image description here

最佳答案

不需要需要包含System.Net.dll,因为您正在寻找System.Net.Sockets命名空间存在于System.dll内部。所以你需要添加对System.dll的引用。看这个link了解更多详情。

所以您需要以下引用:

using System;

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

System.Net.Sockets reference

System.dll reference

希望这有帮助。

关于Ubuntu 上的 C# 和 MonoDevelop - 缺少系统库内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33154254/

相关文章:

c# - 对传递 Expression 与 Func 参数感到困惑

GIT 服务器在 Ubuntu 上安装失败

c# - Mono MVC5 - View 不起作用

c# - 在服务器上进行 xbuild 编译后无法执行二进制文件

c# - 使用 .NET 在同一个进程中执行多个命令行

c# - 解释 C# 程序的最佳方式是什么?

c# - 将数组拆分为二维或两个数组

swift - 在 Linux (Ubuntu) 上的 Swift 中使用 CommonCrypto/CommonHMAC.h 获取 SHA256

ubuntu - 如何为 jenkins build设置 chroot?

.net - Mono下如何获取可用的虚拟和物理内存大小?