无法获得Mono 2.10的Microsoft.VisualBasic.dll

我一直在尝试使用Mono将基于/ for Windows构建的.NET库移植到Ubuntu 11.04。 该库使用.NET 4.0,因此Ubuntu 11.04标准的mono(2.6.7)版本不会削减它。 具体来说,我正在尝试使用Microsoft.VisualBasic.Devices.Computer.Info.TotalPhysicalMemory。 我已经搜索了安装Microsoft.VisualBasic.dll的软件包或并行构建脚本的高低,但没有一个做到。

理想情况下,我想找到一种方法来充分利用这两个世界,支持.NET 4.0的Mono和Microsoft.VisualBasic,这样代码就不必修改了。 我会选择使用另一种方法的替代方法(尽管我在上一篇文章中看到的P / Invoke方法对我没有吸引力)。

任何帮助是极大的赞赏。

您可以尝试通过创建自己的DLL版本来欺骗Cudafy。

使用reflection器或在此处查看界面

https://github.com/mono/mono-basic/blob/master/vbruntime/Microsoft.VisualBasic/Microsoft.VisualBasic.Devices/ComputerInfo.vb

您可以在Mono上使用性能计数器来实际获取内存量;

var pc = new PerformanceCounter("Mono Memory", "Total Physical Memory"); var mem = pc.RawValue(); 

您可以使用MoMA工具检查单声道与项目的兼容性。

在您的特定情况下,您需要的方法未实现,如果这是阻止您的项目工作的唯一因素,您可以实现它,并构建并提供您自己的MS.VB.dll,直到mono发布版本更改它。 一旦你构建了mono-basic,就可以在任何机器上安装(已经安装了mono),只需运行:

gacutil -i path / to / MS.VB.dll

并且dll将被安装到gac中。