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

本文关键字:Microsoft VisualBasic dll Mono | 更新日期: 2023-09-27 18:01:54

我一直在尝试使用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的包或并行构建脚本,但没有一个。

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

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

看起来获取VB.dll也帮不了你。这个方法在Mono中没有实现:

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

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

使用反射器或点击此处查看接口

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中