如何以编程方式确定 Windows 中是不是安装了 Mono 64 位以及安装在何处?

Posted

技术标签:

【中文标题】如何以编程方式确定 Windows 中是不是安装了 Mono 64 位以及安装在何处?【英文标题】: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 所在的位置。

我问是因为

    我没有在 Mono 网站上找到此文档(例如 Mono FAQ: Technical、Install Mono on Windows、Mono Runtime Documentation、Mono Runtime Documentation) 也许有更好/替代的方法。 (例如 GAC ......我并不热衷于 GAC,但也许......)

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


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

【问题讨论】:

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

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

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

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

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

【讨论】:

希望我的回答能帮到你!

以上是关于如何以编程方式确定 Windows 中是不是安装了 Mono 64 位以及安装在何处?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式确定字体是不是为 CFF?

如何以编程方式确定是不是已安装 ActiveX 控件,以及它或整个 ActiveX 是不是已被禁用?

如何以编程方式检查 Windows 是不是是最新的?

如何以编程方式确定 iPhone 的密码是不是已更改或删除?

asp.net 成员资格 - 如何以编程方式确定用户是不是在角色中

在 Windows 中以编程方式确定电源使用情况?