如何以编程方式确定Windows中是否安装了Mono 64位及其安装位置?

时间:2018-09-10 09:05:55

标签: c# windows mono registry

我找到了这些注册表设置

enter image description here

假设用户安装了Mono 64位MSI,我可以用C#代码读取注册表并依靠

  • 1 + 2 表示已安装Mono 64位
  • 3 ,其中Mono lib文件夹位于
  • 4 ,其中Mono配置文件夹是
  • mono-2.0-sgen.dll所在的
  • 5

我问是因为

  1. 我在Mono网站(例如Mono FAQ: TechnicalInstall Mono on WindowsMono Runtime DocumentationMono Runtime Documentation)上找不到此文件
  2. 也许有更好的/替代方法。 (例如,GAC ...我不热衷于GAC,但也许...)

(我假设Computer \ HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node下的任何内容都是32位,并且不会表示64位单声道。)


更新我已经在Mono-Github上问过,这是他们的答案:https://github.com/mono/mono/issues/10535

1 个答案:

答案 0 :(得分:0)

.NET提供了一系列用于读取注册表项的类 Here是如何执行此操作的示例。另一个示例是here

在您的情况下,关键位置是发布的图片中的数字1,关键是“体系结构”,并且是“ x64”,依此类推

尝试使用上面链接中的代码,看看是否可行。需要进行一些调整。

如果您遇到有关管理权限的错误,请尝试以管理员身份运行Visual Studio。