Как определить ревизию, из которой была установлена ​​и установлена ​​текущая среда исполнения Mono? - PullRequest
2 голосов
/ 14 ноября 2010

Я хочу определить ревизию (как правильно ее вызвать в Git?), Из которой была построена и установлена ​​текущая среда исполнения Mono.

$ dmcs --version
Mono C# compiler version 2.9.0.0

, но ее явно недостаточно.Страница ошибки /ASP.NET содержит дополнительную информацию:

Информация о версии: Mono Runtime Version: 2.8.1 (master / cdf1247 Sat Sep 4 01:22:04 MSD 2010);ASP.NET версия: 4.0.30319.1

но мне кажется, что это грязный хак.

Как это сделать правильно?

Ответы [ 2 ]

17 голосов
/ 15 ноября 2010

Если вы ищете моно версию во время выполнения; в 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)

надеюсь, это поможет, с уважением

5 голосов
/ 15 ноября 2010

mono -V выведет строку версии, включая версию исходного кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...