C# Linux上的Mono和缺少的方法异常

C# Linux上的Mono和缺少的方法异常,c#,.net,linux,mono,C#,.net,Linux,Mono,虽然GTK与我的问题没有直接关系,但我一直在尝试用Linux上的mono编写GTK应用程序 现在,我遇到的问题是,我在IPaddress中使用函数maptopv4。当目标是Mono4.5时,这个函数工作得很好,但是当将它推广到我的Linux开发环境时,这个函数会抛出 在程序集myapp.exe中引用的assembly/usr/lib/mono/gac/System/4.0.0.0_u_b77a5c561934e089/System.dll中缺少方法System.Net.IPAddress::Ma

虽然GTK与我的问题没有直接关系,但我一直在尝试用Linux上的mono编写GTK应用程序

现在,我遇到的问题是,我在IPaddress中使用函数maptopv4。当目标是Mono4.5时,这个函数工作得很好,但是当将它推广到我的Linux开发环境时,这个函数会抛出

在程序集myapp.exe中引用的assembly/usr/lib/mono/gac/System/4.0.0.0_u_b77a5c561934e089/System.dll中缺少方法System.Net.IPAddress::MapToIPv4

经过一点研究,我发现这是因为这个函数只在MONO/.NET 4.5中,而不是4.0中,而且我的Linux环境似乎只升到了4.0,因为如果我以4.0为目标,它将不会用这个函数编译。4.5也不会显示为已安装的mono软件包,尽管有一个名为mono Core library for CLI 4.5的软件包会显示

如何让我的Linux允许使用此函数?这可能吗?我使用的是Debian Wheezy 7.8,我使用的单声道版本是最新的4.0.1。如果需要更多信息,请告诉我。
谢谢。

首先要澄清一些混淆:Mono的版本号与.NET版本号有冲突,即Mono 3.12.0还附带了.NET 4.5配置文件

正如您所发现的,MapToIPv4方法仅在.NET 4.5和更高版本中可用,而在.NET 4.0中不可用。你看到的例外是,Mono还没有实现这个特定的API。有一个用于添加它的打开拉取请求:


在此期间,您唯一的选择是自己在代码中实现转换。

谢谢您的帮助。我甚至在mono邮件列表上提出了这个问题。我已经多次遇到这个问题,有些东西已经实现了,但实际上需要拉出来。我希望Mono在将来会对类似的事情更加谨慎。非常感谢。