c# - 如何检测正在使用哪个 .NET 运行时(MS 与 Mono)?

标签 c# mono clr

我想知道在程序执行期间,它是使用 Mono 运行时还是 Microsoft 运行时执行的。

我目前正在使用以下代码来确定我是否在 MS CLR 上:

static bool IsMicrosoftCLR()
{
    return RuntimeEnvironment.GetRuntimeDirectory().Contains("Microsoft");
}

但是,这在某种程度上取决于运行时的安装文件夹,我不确定这是否适用于所有安装。

有没有更好的方法来检查当前运行时?

最佳答案

来自 Mono 项目的 Guide to Porting Winforms Applications :

public static bool IsRunningOnMono ()
{
    return Type.GetType ("Mono.Runtime") != null;
}

我相信您会有更多问题,因此值得查看本指南和 mono-forums

关于c# - 如何检测正在使用哪个 .NET 运行时(MS 与 Mono)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/721161/

相关文章:

c# - 在 Mono 3 (Ubuntu 12.10) 上使用 WinForms

c# - 为什么向 void 返回方法添加返回类型会导致 MissingMethodException

clr - .NET 2.0中具有扩展属性的Escape Catch-22

c# - 原点搜索短语

c# - 如何诊断句柄泄漏源

c# - 在 Linux 上从 C# Mono 控制鼠标和键盘

c# - 构建用于 Linux(通过 Mono)的 CPU 密集型 C# 应用程序是个坏主意吗?

.net - 关于装箱的 CLR 规范

c# - 重命名 .Net 程序集

c# - 多个事件的一个处理程序