• C#(Visual Studio) AssemblyInfo


    AssemblyInfo

    .NET Project的Properties文件夹下会自动生成一个AssemblyInfo.cs的文件,该文件包含的信息和项目->右键->属性->Application->Assembly Information完全一样。其作用是为程序集定义不同的属性。所有的属性都是基于.NET Framework中的System.Attribute。其语法如下:

    [assembly:<attribute>(<setting>)]

    AssemblyVersionAttribute

    文件版本号的设置,其中Attribute可以省略 :

    [assembly:AssemblyVersion("1.0")]
    属性 描述
    AssemblyTitle 程序集标题,默认为DLL库名
    AssemblyDescription 关于程序集的简短描述
    AssemblyCompany 程序集所属公司名称
    AssemblyProduct 基于此程序集的产品名称
    AssemblyCopyright 程序集所属版权
    AssemblyTrademark 合法商标
    AssemblyVersion 程序集的版本
    AssemblyCulture 程序集支持的culture
    AssemblyConfiguration 指定程序的生成配置,如发布或调试配置
    ComVisible 控制程序集中所有类型对COM的可访问性

    这些属性基本都允许用一个字符串来定义属性的值,AssemblyVersion例外,必须使用特定格式的字符串:Major.Minor.Build.Revision

    Major和Minor分别为主、副版本号,版本号的的更改通常说明和先前的版本有不兼容的改动。例如,2.1版本和基于同样库的2.2版本有不兼容的地方。

    构建号(Build)是一个程序集的相同副版本的不同编译设置。它偶尔也会出现不兼容的情况,但通常,如2.1.17和2.1.42版本的运行情况是一样的。

    修订号(Revision)是用来固话bug或者其他偶发的更新,它通常不会破坏兼容性。

    在程序中获取这些信息

    原代码处(http://blog.sina.com.cn/s/blog_61c4c1f60100eira.html)

    public class GetAssembly<T> {
            private Type myType;
    
            public GetAssembly(Type myType)
            {
                this.myType = typeof(T);
            }
    
            public string AssemblyName
            {
                get { return myType.Assembly.GetName().Name.ToString(); }
            }
    
            public string AssemblyFullName
            {
                get { return myType.Assembly.GetName().FullName.ToString(); }
            }
    
            public String CodeBase {
                get {
                    return myType.Assembly.CodeBase;
                }
            }
    
            public String Version {
                get {
                    return myType.Assembly.GetName().Version.ToString();
                }
            }
    
            public String Copyright {
                get {
                    Type att = typeof(AssemblyCopyrightAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyCopyrightAttribute copyattr = (AssemblyCopyrightAttribute)r[0];
                    return copyattr.Copyright;
                }
            }
    
            public String Company {
                get {
                    Type att = typeof(AssemblyCompanyAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyCompanyAttribute compattr = (AssemblyCompanyAttribute)r[0];
                    return compattr.Company;
                }
            }
    
            public String Configration {
                get {
                    Type att = typeof(AssemblyConfigurationAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyConfigurationAttribute configattr = (AssemblyConfigurationAttribute)r[0];
                    return configattr.Configuration;
                }
            }
    
            public string TradeMark {
                get {
                    Type att = typeof(AssemblyTrademarkAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyTrademarkAttribute aa = (AssemblyTrademarkAttribute)r[0];
                    return aa.Trademark;
                }
            }
    
            public string Culture {
                get {
                    Type att = typeof(AssemblyCultureAttribute);
                    object[] a = myType.Assembly.GetCustomAttributes(att, false);
                    if (a.Length > 0) {
                        AssemblyCultureAttribute aa = (AssemblyCultureAttribute)a[0];
                        return aa.Culture;
                    } else {
                        return "No value";
                    }
                }
            }
    
            public String Description {
                get {
                    Type att = typeof(AssemblyDescriptionAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyDescriptionAttribute descattr = (AssemblyDescriptionAttribute)r[0];
                    return descattr.Description;
                }
            }
    
            public String Product {
                get {
                    Type att = typeof(AssemblyProductAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyProductAttribute prodattr = (AssemblyProductAttribute)r[0];
                    return prodattr.Product;
                }
            }
    
            public String Title {
                get {
                    Type att = typeof(AssemblyTitleAttribute);
                    object[] r = myType.Assembly.GetCustomAttributes(att, false);
                    AssemblyTitleAttribute titleattr = (AssemblyTitleAttribute)r[0];
                    return titleattr.Title;
                }
            }
    }
  • 相关阅读:
    锁屏设计文档
    用 jquery 解决 浏览器 兼容问题
    mysql 查询语句
    技术相关
    android Rom 制作2
    android Rom 制作
    UI设计
    jquery 表单验证
    cent os数据库安装
    mysql jdbc 驱动 下载地址官网
  • 原文地址:https://www.cnblogs.com/jiawei-whu/p/4281981.html
Copyright © 2020-2023  润新知