如何以编程方式获取Windows服务的版本信息

时间:2010-06-10 17:40:24

标签: c# setup-project

我需要以编程方式获取我的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 个答案:

答案 0 :(得分:8)

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;