• .net 自动生成程序集版本号


    参考:http://blog.163.com/china0359@yeah/blog/static/1217194362010577545938/

    上述内容中,还有版本号设置规则等内容,感觉还不错。

    版本号可以存放在AssemblyInfo.cs文件中,[assembly: AssemblyVersion("1.0.0.0")]可以修改为:[assembly: AssemblyVersion("1.0.0.*")];4个数字分别为主版本、次版本、内部版本号、修订号。

    前两个是对外发布用的,要手工修改;

    内部版本号,是200011日到编译日期的天数;

    内部修订号是当天从0点0分0秒到当前时间的毫秒数。

    该文件中除了版本号外,还有产品名称、公司名称等信息。

    using System.Diagnostics;//取文件版本号用

               ////Application.ProductVersion;//程序集版本号
                lbVer.Text = "版本号:" + GetAssembly(typeof(System.Reflection.AssemblyVersionAttribute));

            /// <summary>
            /// 获取程序集项目属性内容
            /// </summary>
            /// <param name="type"></param>
            /// <returns></returns>
            private string GetAssembly(Type type)
            {
                if (type.ToString() == "System.Reflection.AssemblyVersionAttribute")
                {//程序集版本号,要用这个方法获取,无法用下边的方法获取,原因不知
                    return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
                }
                object[] attributes = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttributes(type, false);
                if (attributes.Length > 0)
                {
                    if (type.ToString() == "System.Reflection.AssemblyCompanyAttribute")
                    {
                        #region//公司
                        System.Reflection.AssemblyCompanyAttribute company = (System.Reflection.AssemblyCompanyAttribute)attributes[0];
                        if (company.Company != "")
                        {
                            return company.Company;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyCopyrightAttribute")
                    {
                        #region//版权
                        System.Reflection.AssemblyCopyrightAttribute company = (System.Reflection.AssemblyCopyrightAttribute)attributes[0];
                        if (company.Copyright != "")
                        {
                            return company.Copyright;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyTitleAttribute")
                    {
                        #region//标题
                        System.Reflection.AssemblyTitleAttribute company = (System.Reflection.AssemblyTitleAttribute)attributes[0];
                        if (company.Title != "")
                        {
                            return company.Title;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyDescriptionAttribute")
                    {
                        #region//备注
                        System.Reflection.AssemblyDescriptionAttribute company = (System.Reflection.AssemblyDescriptionAttribute)attributes[0];
                        if (company.Description != "")
                        {
                            return company.Description;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyProductAttribute")
                    {
                        #region//产品名称
                        System.Reflection.AssemblyProductAttribute company = (System.Reflection.AssemblyProductAttribute)attributes[0];
                        if (company.Product != "")
                        {
                            return company.Product;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyTrademarkAttribute")
                    {
                        #region//商标
                        System.Reflection.AssemblyTrademarkAttribute company = (System.Reflection.AssemblyTrademarkAttribute)attributes[0];
                        if (company.Trademark != "")
                        {
                            return company.Trademark;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyConfigurationAttribute")
                    {
                        #region//获取程序集配置信息,具体什么内容,不清楚
                        System.Reflection.AssemblyConfigurationAttribute company = (System.Reflection.AssemblyConfigurationAttribute)attributes[0];
                        if (company.Configuration != "")
                        {
                            return company.Configuration;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyCultureAttribute")
                    {
                        #region//获取属性化程序集支持的区域性,具体什么内容,不清楚
                        System.Reflection.AssemblyCultureAttribute company = (System.Reflection.AssemblyCultureAttribute)attributes[0];
                        if (company.Culture != "")
                        {
                            return company.Culture;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyVersionAttribute")
                    {
                        #region//程序集版本号
                        System.Reflection.AssemblyVersionAttribute company = (System.Reflection.AssemblyVersionAttribute)attributes[0];
                        if (company.Version != "")
                        {
                            return company.Version;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyFileVersionAttribute")
                    {
                        #region//文件版本号
                        System.Reflection.AssemblyFileVersionAttribute company = (System.Reflection.AssemblyFileVersionAttribute)attributes[0];
                        if (company.Version != "")
                        {
                            return company.Version;
                        }
                        #endregion
                    }
                    else if (type.ToString() == "System.Reflection.AssemblyInformationalVersionAttribute")
                    {
                        #region//产品版本号
                        System.Reflection.AssemblyInformationalVersionAttribute company = (System.Reflection.AssemblyInformationalVersionAttribute)attributes[0];
                        if (company.InformationalVersion != "")
                        {
                            return company.InformationalVersion;
                        }
                        #endregion
                    }
                }
                //如果没有  属性,或者  属性为一个空字符串,则返回 .exe 的名称 
                return System.IO.Path.GetFileNameWithoutExtension(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
            }

    除此以外,在项目-属性-发布中,有个发布版本,可以设置为“随每次发布自增自动递增修订号”,可以再点击“立即发布”后修改版本号,不过CS程序好像没什么发布的概念吧,谁对这个有方法可以说下,学习学习。

  • 相关阅读:
    QTableView之一:基本使用
    Qt Plugin插件开发之一:插件机制与实例
    Qt样式表之一:QSS名词解释
    git 阻止在某个分支上面提交commit
    1.TP6的入门安装
    华为Gaussdb 高级知识培训
    list 序列号为字符json:字符串json序列化为list
    华为Gaussdb性能优化
    ElasticSearch 知识点汇总
    mongdb 操作总结,聚合操作,数据库恢复和备份
  • 原文地址:https://www.cnblogs.com/jiutianxingchen/p/2881695.html
Copyright © 2020-2023  润新知