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

时间:2011-07-10 22:29:55

标签: c# c#-4.0 mono ubuntu-11.04

我一直在尝试使用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,这样代码就不必修改了。我会选择使用另一种方法的替代方法(尽管我在this上一篇文章中看到的P / Invoke方法对我没有吸引力。)

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

您可以尝试通过创建自己的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();

答案 2 :(得分:0)

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

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

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

并且dll将安装到gac中。