C# 编译器解释的程序集级别属性

大多数属性适用于特定语言元素,例如类或方法。 但是,某些属性是全局属性。 它们适用于整个程序集或模块。 例如,使用特性将 AssemblyVersionAttribute 版本信息嵌入程序集中,如下所示:

[assembly: AssemblyVersion("1.0.0.0")]

全局特性出现在源代码中任何顶级 using 指令之后和任何类型、模块或命名空间声明之前。 可以在多个源文件中包含全局属性,但必须在单个编译传递中编译文件。 在 .NET Framework 项目中,Visual Studio 将全局属性添加到AssemblyInfo.cs文件中。 这些特性不会添加到 .NET Core 项目中。

C# 语言参考记录了最近发布的 C# 语言版本。 它还包含即将发布的语言版本公共预览版中功能的初始文档。

本文档标识了在语言的最后三个版本或当前公共预览版中首次引入的任何功能。

小窍门

若要查找 C# 中首次引入功能时,请参阅 有关 C# 语言版本历史记录的文章。

程序集属性提供有关程序集的信息。 它们分为以下几类:

  • 程序集标识特性
  • 信息性特性
  • 程序集清单特性

程序集标识特性

三个特性(与强名称(如果适用))组合起来可以确定程序集的标识:名称、版本和区域性。 这些特性构成程序集的全名,在代码中引用程序集时必需使用。 可以使用属性设置程序集的版本和区域性。 但是,在创建程序集时,编译器、 程序集信息对话框中的 Visual Studio IDE 或程序集链接器(Al.exe)设置名称值。 程序集名称基于程序集清单。 AssemblyFlagsAttribute 属性指定程序集的多个副本是否可以共存。

下表显示标识特性。

特性 目标
AssemblyVersionAttribute 指定程序集的版本。
AssemblyCultureAttribute 指定程序集支持的区域性。
AssemblyFlagsAttribute 指定描述实时 (JIT) 编译器选项的程序集的标志的按位组合、该程序集是否可重定目标,以及是否具有完整或已标记化的公共密钥。

信息性特性

使用信息属性为程序集提供更多的公司或产品信息。 下表显示 System.Reflection 命名空间中定义的信息性属性。

特性 目标
AssemblyProductAttribute 指定程序集清单的产品名称。
AssemblyTrademarkAttribute 指定程序集清单的商标。
AssemblyInformationalVersionAttribute 为程序集清单指定信息性版本。
AssemblyCompanyAttribute 为程序集清单指定公司名称。
AssemblyCopyrightAttribute 定义为程序集清单指定版权的自定义属性。
AssemblyFileVersionAttribute 设置 Win32 文件版本资源的特定版本号。
CLSCompliantAttribute 指示程序集是否符合公共语言规范 (CLS)。

程序集清单特性

使用程序集清单属性在程序集清单中提供信息。 特性包括标题、说明、默认别名和配置。 下表显示 System.Reflection 命名空间中定义的程序集清单属性。

特性 目标
AssemblyTitleAttribute 为程序集清单指定程序集标题。
AssemblyDescriptionAttribute 为程序集清单指定程序集说明。
AssemblyConfigurationAttribute 为程序集清单指定程序集配置(如零售或调试)。
AssemblyDefaultAliasAttribute 定义程序集清单的友好默认别名。