我想在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(和其他)系统库类的代码。我在Mono安装后添加了我的项目引用System.Net.dll,它位于 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的屏幕截图,你可以看到System.Net参考被添加到项目中,但内部类不可见。当我键入" System.Net。"它只允许我选择" System.Net.IPEndPointCollection"而没有别的:
编辑: 如果我在"汇编浏览器"中单击MonoDevelop中的System.net引用,那也是奇怪的。我可以看到这个" System.net.dll"的内容。特别是System.Net.Sockets存在于那里......:
答案 0 :(得分:2)
您不需要包含 System.Net.dll ,因为您正在寻找 System.Net.Sockets命名空间存在于 System.dll 中。所以你需要添加对System.dll的引用。有关详细信息,请参阅此link。
所以你需要以下参考:
使用System;
我也在使用MonoDevelop快照连接我的Ubuntu。在这些快照中,您可以看到我没有对System.Net.dll的任何引用,在我的项目引用中,只需要System.dll。
希望这有帮助。