在代码中设置程序集属性

程序集属性是提供有关程序集的信息的值。 它们通常设置在 AssemblyInfo.cs 文件中。 这些属性分为以下信息集:

  • 程序集标识特性
  • 信息的属性
  • 程序集清单特性
  • 强名称特性

本文旨在从代码中添加程序集特性。 有关将程序集属性添加到项目(不在代码中)的信息,请参阅 项目文件中的“设置程序集属性”。

程序集标识特性

三个属性以及(如果适用)强名称,共同决定程序集的身份:名称、版本和文化。 这些属性构成程序集的全名,在代码中引用程序集时是必需的。 可以使用特性设置程序集的版本和文化信息。 编译器或 程序集链接器(Al.exe) 根据包含程序集清单的文件在创建程序集时设置名称值。

下表描述了版本和文化属性。

程序集标识特性 DESCRIPTION
AssemblyCultureAttribute 表示程序集所支持的区域性的枚举字段。 程序集还可以指定文化独立性,表示它包含默认文化的资源。 注意: 运行时将任何未将区域性属性设置为 null 的程序集视为卫星程序集。 此类程序集受卫星程序集绑定规则的约束。 有关详细信息,请参阅 运行时如何定位程序集
AssemblyFlagsAttribute 设置程序集属性的值,例如程序集是否可以并行运行。
AssemblyVersionAttribute 主版本.次版本.内部版本.修订版本 为格式的数值(例如 2.4.0.0)。 公共语言运行时使用此值在强名称程序集中执行绑定操作。 注意: 如果未将 AssemblyInformationalVersionAttribute 属性应用于程序集,则由 AssemblyVersionAttribute 属性指定的版本号将由 Application.ProductVersionApplication.UserAppDataPathApplication.UserAppDataRegistry 属性使用。

下面的代码示例演示如何将版本和区域性属性应用于程序集。

// 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")>

信息的属性

可以使用信息属性为程序集提供其他公司或产品信息。 下表描述了可应用于程序集的信息属性。

信息性特性 DESCRIPTION
AssemblyCompanyAttribute 指定公司名称的字符串值。
AssemblyCopyrightAttribute 指定版权信息的字符串值。
AssemblyFileVersionAttribute 指定 Win32 文件版本号的字符串值。 通常默认为程序集版本。
AssemblyInformationalVersionAttribute 指定公共语言运行时不使用的版本信息的字符串值,例如完整的产品版本号。 注意: 如果此属性应用于程序集,则可以使用 Application.ProductVersion 属性在运行时获取它指定的字符串。 该字符串还用于由 Application.UserAppDataPathApplication.UserAppDataRegistry 属性提供的路径和注册表项。
AssemblyProductAttribute 指定产品信息的字符串值。
AssemblyTrademarkAttribute 指定商标信息的字符串值。

这些属性可以出现在程序集的 Windows 属性页上,还可以通过使用 /win32res 编译器选项来覆盖这些属性,以指定 Win32 资源文件。

程序集清单特性

可以使用程序集清单属性在程序集清单中提供信息,包括标题、说明、默认别名和配置。 下表描述了程序集清单属性。

程序集清单特性 DESCRIPTION
AssemblyConfigurationAttribute 表示程序集配置(如零售或调试)的字符串值。 运行时不使用此值。
AssemblyDefaultAliasAttribute 指定引用程序集所用的默认别名的字符串值。 当程序集名称本身不友好(例如 GUID 值)时,此值提供友好名称。 此值还可以用作完整程序集名称的简短形式。
AssemblyDescriptionAttribute 指定一个字符串值,用于简要描述程序集的性质和目的。
AssemblyTitleAttribute 指定程序集的友好名称的字符串值。 例如,名为 comdlg 的程序集可能具有标题Microsoft Common Dialog Control。

强名称特性

可以使用强名称属性为程序集设置强名称。 下表介绍了强名称特性。

强名称属性 DESCRIPTION
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)>

另请参阅