Как программно получить информацию о версии для моей службы Windows - PullRequest
3 голосов
/ 10 июня 2010

Мне нужно программно получить версию моей службы Windows и сохранить ее в виде строки. Затем я добавлю версию к своему отображаемому имени и имени службы в классе ProjectInstaller. Сейчас я получаю пустую строку и у меня возникают проблемы с отладкой моего проекта установки. Вот мой текущий код:

        string version = null;
        try
        {
            Assembly exeAssembly = Assembly.GetEntryAssembly();
            Type attrType = typeof(AssemblyFileVersionAttribute);
            object[] attributes = exeAssembly.GetCustomAttributes(attrType, false);
            if (attributes.Length > 0)
            {
                AssemblyFileVersionAttribute verAttr = (AssemblyFileVersionAttribute)attributes[0];
                if (verAttr != null)
                {
                    version = verAttr.Version;
                }
            }
        }
        catch
        {
        }
        if (version == null)
        {
            version = string.empty;
        }

1 Ответ

8 голосов
/ 10 июня 2010
var version = Assembly.GetExecutingAssembly().GetName().Version;
return version.ToString();

Вернет его в форме 1.0.0.0.

Или вы можете использовать version.Major + "." + version.Minor, чтобы получить только первые два числа.

В качестве альтернативы, если вы хотите версию файла ...

var fvi = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location);
return fvi.FileVersion;
...