AssemblyInfo.cs文件详解
程序员文章站
2022-04-03 23:42:11
1、.Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”,然后修改信息。 2、通过特性(Attribute)来设置程 ......
1、.Net工程的Properties文件夹下自动生成一个名为AssemblyInfo.cs的文件,一般情况下我们很少直接改动该文件。但我们实际上通过另一个形式操作该文件。那就是通过在鼠标右键点击项目的属性进入“应用程序”->“程序集信息”,然后修改信息。
2、通过特性(Attribute)来设置程序集(dll文件)的常规信息,供查看或作为配置信息供程序内部使用。
此文件内容如下:
1 // 程序集标题 2 [assembly:AssemblyTitle("程序集标题")] 3 // 程序集描述 4 [assembly:AssemblyDescription("程序集描述")] 5 // 产品名称 6 [assembly:AssemblyProduct("产品名称")] 7 // 公司 8 [assembly:AssemblyCompany("公司名称")] 9 // 合法商标 10 [assembly:AssemblyTrademark("合法商标")] 11 // 指定程序集支持的区域性 12 [assembly:AssemblyCulture("区域性")] 13 // 版权 14 [assembly:AssemblyCopyright("Copyright 2014")] 15 // 配置文件,如零售、发布、调试等信息。程序集在运行时不会使用该信息 16 [assembly:AssemblyConfiguration("")] 17 // 程序集的版本信息由下面四个值组成: 18 // 19 // 主版本 20 // 次版本 21 // 内部版本号 22 // 修订号 23 // 24 // 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, 25 // 方法是按如下所示使用“*”: 26 [assembly:AssemblyVersion("1.0.0.0")] 27 28 // 控制程序集中所有类型对COM的可访问性 29 [assembly:ComVisible(false)] 30 // 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID 31 [assembly: Guid("77bf07c6-941f-4ba7-b95d-6a5c18401f74")]
3、 对生成的dll文件右键点击属性,即可查看到上述信息。
assembly: 表示特性以程序集作为作用范围。
4、读取Assembly特性
以读取 [assembly:AssemblyProduct("")] 为例子
Type t = typeof(Program); AssemblyProductAttribute productAttr = t.Assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), true)[0] as AssemblyProductAttribute; Console.WriteLine(productAttr.Product);
5、注意要点
1) [assembly:AssemblyProduct("")] 特性不限于在AssemblyInfo.cs文件中使用,而是可以在任何的.cs文件中使用。
2) 对于同一个特性,程序集中仅能设置一次,否则编译时将报错。
示例:
[assembly:AssemblyProduct("")] namespace{ public class Demo{ } }