【问题标题】:How do I programmatically determine if and where Mono 64 bit is installed in Windows?如何以编程方式确定 Windows 中是否安装了 Mono 64 位以及安装在何处?
【发布时间】:2019-02-14 16:30:22
【问题描述】:

我找到了这些注册表设置

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

  • 1 + 2表示安装了Mono 64位
  • 3 Mono lib 文件夹所在的位置
  • 4 Mono 配置文件夹所在的位置和
  • 5mono-2.0-sgen.dll 所在的位置。

我问是因为

  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

【问题讨论】:

  • 所以现在您知道如何以编程方式检测是否安装了单声道以及安装在哪里......只需寻找那些 reg 键
  • @BugFinder 我没有在任何地方找到这个文档......我可以依靠这个吗?
  • 大多数情况下这些东西都没有记录。如果您在一堆盒子上进行测试,如果所有盒子都在那里,您应该能够假设它是可靠的
  • @robor78 你可能想在 Mono repo 上发布一个问题,询问这些注册表项是否“稳定”

标签: c# windows mono registry


【解决方案1】:

.NET 提供了一系列用于读取注册表项的类 Here 是如何做到这一点的一个例子。另一个例子是here

在您的情况下,关键位置是发布图片中的 1 号,关键是“架构”,它是“x64”等等

尝试上面链接中的代码,看看是否有效。需要做一些适应。

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

【讨论】:

  • 希望我的回答能帮到你!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多