在代码中设置程序集属性
程序集特性是提供程序集相关信息的值。 它们通常在 AssemblyInfo.cs 文件中设置。 特性分为以下几组信息:
- 程序集标识特性
- 信息性特性
- 程序集清单特性
- 强名称特性
本文仅介绍如何通过代码添加程序集属性。 有关将程序集属性添加到项目(不在代码中)的信息,请参阅项目文件中的“设置程序集属性”。
程序集标识特性
三个特性与强名称(如果适用)组合起来可以确定程序集的标识:名称、版本和区域性。 这些特性构成程序集的完整名称,在代码中引用程序集时必需使用。 特性可用于设置程序集的版本和区域性。 编译器或 程序集链接器 (Al.exe) 依据包含程序集清单的文件在创建该程序集时设置名称值。
下表介绍了版本和区域性特性。
程序集标识特性 | 描述 |
---|---|
AssemblyCultureAttribute | 表示程序集所支持的区域性的枚举字段。 程序集还可以指定区域性独立性,表示它包含默认区域性的资源。 注意:对于区域性特性未设置为 null 的任何程序集,运行时都会将它们视为附属程序集。 此类程序集需遵循附属程序集绑定规则。 有关详细信息,请参阅运行时如何定位程序集。 |
AssemblyFlagsAttribute | 设置程序集特性(例如是否可以并行运行程序集)的值。 |
AssemblyVersionAttribute | 以 主版本.次版本.内部版本.修订版本 为格式的数值(例如 2.4.0.0)。 公共语言运行时使用此值在强名称程序集中执行绑定操作。 注意:如果 AssemblyInformationalVersionAttribute 特性不适用于程序集,则 Application.ProductVersion、Application.UserAppDataPath 和 Application.UserAppDataRegistry 属性将使用由 AssemblyVersionAttribute 特性指定的版本号。 |
下面的示例演示了如何将版本和区域性特性应用到程序集中。
// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")];
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")];
// Set version number for the assembly.
[assembly:AssemblyVersionAttribute("4.3.2.1")]
// Set culture as German.
[assembly:AssemblyCultureAttribute("de")]
' Set version number for the assembly.
<Assembly:AssemblyVersionAttribute("4.3.2.1")>
' Set culture as German.
<Assembly:AssemblyCultureAttribute("de")>
信息性特性
信息性特性可用于提供程序集的其他公司或产品信息。 下表介绍了可应用于程序集的信息性特性。
信息性特性 | 描述 |
---|---|
AssemblyCompanyAttribute | 指定公司名称的字符串值。 |
AssemblyCopyrightAttribute | 指定版权信息的字符串值。 |
AssemblyFileVersionAttribute | 指定 Win32 文件版本号的字符串值。 通常默认为程序集版本。 |
AssemblyInformationalVersionAttribute | 指定公共语言运行时未使用的版本信息(例如完整的产品版本号)的字符串值。 注意:如果将此特性应用于程序集,可在运行时通过使用 Application.ProductVersion 属性获得其指定的字符串。 此字符串还用于 Application.UserAppDataPath 和 Application.UserAppDataRegistry 属性所提供的路径和注册表项。 |
AssemblyProductAttribute | 指定产品信息的字符串值。 |
AssemblyTrademarkAttribute | 指定商标信息的字符串值。 |
这些特性可以出现在程序集的 Windows 属性页上,或使用 /win32res 编译器选项重写,以指定你的 Win32 资源文件。
程序集清单特性
程序集清单特性可用于在程序集清单中提供标题、说明、默认别名和配置等信息。 下表介绍了程序集清单特性。
程序集清单特性 | 描述 |
---|---|
AssemblyConfigurationAttribute | 表示程序集配置(如零售或调试)的字符串值。 运行时不使用此规则。 |
AssemblyDefaultAliasAttribute | 指定引用程序集所用的默认别名的字符串值。 此值会在程序集本身的名称不友好(例如 GUID 值)的情况下提供一个友好名称。 此值还可用于完整程序集名称的缩写。 |
AssemblyDescriptionAttribute | 指定描述程序集性质和用途简短说明的字符串值。 |
AssemblyTitleAttribute | 指定程序集的友好名称的字符串值。 例如,名为 comdlg 的程序集的标题可能是“Microsoft 通用对话框控件”。 |
强名称特性
强名称特性可用于设置程序集的强名称。 下表介绍了强名称特性。
强名称属性 | 描述 |
---|---|
AssemblyDelaySignAttribute | 表示正在使用延迟签名的布尔值。 |
AssemblyKeyFileAttribute | 表示文件名称的字符串值,该文件包含公钥(如果使用延迟签名)或同时包含作为参数传递给此特性的构造函数的公钥和私钥。 请注意,文件名与输出文件路径(.exe 或.dll)有关,与源文件路径无关 。 |
AssemblyKeyNameAttribute | 表示包含作为参数传递给此特性的构造函数的密钥对的密钥容器。 |
以下代码示例显示了使用延迟签名创建具有名为 myKey.snk 的公钥文件的强名称程序集时要应用的属性。
[assembly:AssemblyKeyFileAttribute("myKey.snk")];
[assembly:AssemblyDelaySignAttribute(true)];
[assembly:AssemblyKeyFileAttribute("myKey.snk")]
[assembly:AssemblyDelaySignAttribute(true)]
<Assembly:AssemblyKeyFileAttribute("myKey.snk")>
<Assembly:AssemblyDelaySignAttribute(True)>