代码之家  ›  专栏  ›  技术社区  ›  abatishchev Karl Johan

如何确定当前Mono运行时的版本?

  •  2
  • abatishchev Karl Johan  · 技术社区  · 14 年前

    我想确定修订版(如何在Git中正确调用它?)从中生成并安装当前Mono运行时。

    $ dmcs --version
    Mono C# compiler version 2.9.0.0
    

    但绝对不够。

    XSP/ASP.NET错误页提供了更多信息:

    版本信息:Mono运行时版本:2.8.1(master/cdf1247 Sat Sep 4 01:22:04 MSD 2010);ASP.NET版本:4.0.30319.1

    但对我来说这似乎是一个肮脏的黑客。

    如何正确操作?

    2 回复  |  直到 14 年前
        1
  •  5
  •   skolima    14 年前

    mono -V 将输出版本字符串,包括源代码修订。

        2
  •  17
  •   abatishchev Karl Johan    14 年前

    如果您正在查找mono运行时版本;mscorlib中有一个内部mono.runtime类,它有一个静态方法GetDisplayName,该方法应返回当前运行时版本的字符串。此方法是私有的,但仍然可以通过反射访问。我写了一个小脚本来测试这个,看看是否对你有用:

    Type type = Type.GetType("Mono.Runtime");
    if (type != null)
    {                                          
        MethodInfo dispalayName = type.GetMethod("GetDisplayName", BindingFlags.NonPublic | BindingFlags.Static); 
        if (dispalayName != null)                   
            Console.WriteLine(dispalayName.Invoke(null, null)); 
    }
    

    在我的系统上返回:

    2.6.7(Debian 2.6.7-3ubuntu1~dhx1)

    希望这有帮助,问候