陈斌彬的技术博客

Stay foolish,stay hungry

AssemblyInfo.cs文件详解

作用                              

通过特性(Attribute)来设置程序集(dll文件)的常规信息,供查看或作为配置信息供程序内部使用。

详解                    

// 程序集标题
[assembly:AssemblyTitle("程序集标题")]
// 程序集描述
[assembly:AssemblyDescription("程序集描述")]
// 产品名称
[assembly:AssemblyProduct("产品名称")]
// 公司
[assembly:AssemblyCompany("公司名称")]
// 合法商标
[assembly:AssemblyTrademark("合法商标")]
// 产品的内部名称
[assembly:AssemblyCulture("产品的内部名称")]
// 版权
[assembly:AssemblyCopyright("Copyright 2014")]

// 程序集的版本信息由下面四个值组成:
//
//      主版本
//      次版本 
//      内部版本号
//      修订号
//
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
[assembly:AssemblyVersion("1.0.0.0")]

// 控制程序集中所有类型对COM的可访问性
[assembly:ComVisible(false)]
// 配置文件,如零售、发布、调试等信息。程序集在运行时不会使用该信息
[assembly:AssemblyConfiguration("")]

对生成的dll文件右键点击属性,即可查看到上述信息。

assembly: 表示特性以程序集作为作用范围。

读取assembly特性                        

以读取 [assembly:AssemblyProduct("")] 为例子

Type t = typeof(Program);
AssemblyProductAttribute productAttr = t.Assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), true)[0] as AssemblyProductAttribute;
Console.WriteLine(productAttr.Product);

注意点                              

1.[assembly:AssemblyProduct("")] 特性不限于在AssemblyInfo.cs文件中使用,而是可以在任何的.cs文件中使用。

2.对于同一个特性,程序集中仅能设置一次,否则编译时将报错。

示例:

[assembly:AssemblyProduct("")]
namespace{
  public class Demo{
  }
}