我一直在尝试使用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方法对我没有吸引力。)
非常感谢任何帮助。
答案 0 :(得分:1)
看起来获取VB.dll也无济于事。此方法未在Mono中实现:
答案 1 :(得分:1)
您可以尝试通过创建自己的DLL版本来欺骗Cudafy。
使用反射器或点击此处查看界面
您可以在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中。