程序集属性是提供程序集相关信息的值。属性分为以下几组信息:
- 程序集标识属性。
- 信息性属性。
- 程序集清单属性。
- 强名称属性。
程序集标识属性
三种属性与强名称(如果适用)一起决定程序集的标识:名称、版本和区域性。这些属性构成程序集的完整名称,并且在代码中引用程序集时需要这些属性。您可以使用属性来设置程序集的版本和区域性。编译器或程序集链接器 (Al.exe) 根据包含程序集清单的文件在创建程序集时设置名称值,如果在一个解决方案里面中的一个或多个项目用到了别的项目程序序集,版本号要一致。
下面的代码示例说明了如何将版本和区域性属性应用于程序集。
[Visual Basic]
'Set version number for the assembly.
<Assembly:AssemblyVersionAttribute("4.3.2.1")>
'Set culture as German.
<Assembly:AssemblyCultureAttribute("de")>
[C#]
//Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")]
//Set culture as German.
[assembly:AssemblyCultureAttribute("de")]
信息性属性
您可以使用信息性属性为程序集提供其他的公司或产品信息。下表描述了可应用于程序集的信息性属性。
信息性属性 | 说明 |
---|---|
AssemblyCompanyAttribute | 指定公司名称的字符串值。 |
AssemblyCopyrightAttribute | 指定版权信息的字符串值。 |
AssemblyFileVersionAttribute | 指定 Win32 文件版本号的字符串值。默认值通常是程序集版本。 |
AssemblyInformationalVersionAttribute | 指定运行时不使用的版本信息的字符串值,例如,完整的产品版本号。 |
AssemblyProductAttribute | 指定产品信息的字符串值。 |
AssemblyTrademarkAttribute | 指定商标信息的字符串值。 |
这些属性可以显示在程序集的“Windows 属性”页上,或者,使用 /win32res 编译器选项来指定自己的 Win32 资源文件可以重写这些属性。
程序集清单属性
您可以使用程序集清单属性在程序集清单中提供信息,包括标题、说明、默认别名和配置。下面的表格描述了程序集清单的属性。
程序集清单属性 | 说明 |
---|---|
AssemblyConfigurationAttribute | 表明程序集配置的字符串值,例如 Retail 或 Debug。运行时不使用此值。 |
AssemblyDefaultAliasAttribute | 指定引用程序集要使用的默认别名的字符串值。此值在程序集本身的名称不友好时提供友好名称,例如 GUID 值。此值也可以用作完整程序集名称的缩写。 |
AssemblyDescriptionAttribute | 指定总结程序集的特性和作用的简短说明的字符串值。 |
AssemblyTitleAttribute | 为程序集指定友好名称的字符串值。例如,名为 comdlg 的程序集可以有标题“Microsoft Common Dialog 控件”。 |
强名称属性
您可以使用强名称属性来为程序集设置强名称。下面的表格描述了强名称属性。
强名称属性 | 说明 |
---|---|
AssemblyDelaySignAttribute | 表明正在使用延迟签名的 Boolean 值。 |
AssemblyKeyFileAttribute | 表明文件名称的字符串值,此文件中或者只包含了公钥(如果使用延迟签名),或者包含了公钥和私钥都,公钥和私钥作为参数传递至此属性的构造函数。请注意,文件名称与输出文件路径(.exe 或 .dll)相关,与源文件路径无关。 |
AssemblyKeyNameAttribute | 表明包含密钥对(作为参数传递至此属性的构造函数)的密钥容器。 |
下面的代码示例说明了在使用延迟签名来创建名为 myKey.snk
的公钥文件的强名称程序集时要应用的属性。
[Visual Basic]
<Assembly:AssemblyKeyFileAttribute("myKey.snk")>
<Assembly:AssemblyDelaySignAttribute(True)>
[C#]
[assembly:AssemblyKeyFileAttribute(@"../../myKey.snk")]
[assembly:AssemblyDelaySignAttribute(true)]