.NET 中的程序集 Assemblies in .NET

在 .NET Core 和 .NET Framework 中,可以从一个或多个源代码文件生成程序集。在 .NET Framework 中,程序集可以包含一个或多个模块。因此,可以将大型项目规划为,由多个开发者单独开发各个源代码文件或模块,最后整合所有这些内容以创建一个程序集。若要详细了解模块,请参阅。

程序集具有以下属性:

  • 程序集以 .exe 或 .dll 文件的形式实现。

  • 只有在需要使用时才会将程序集加载到内存中。如果不使用,就不会加载程序集。也就是说,使用程序集,可以在大型项目中高效管理资源。

  • 只能通过调用方法 Assembly.ReflectionOnlyLoadFrom 来加载程序集以检查它。

每个程序集中都有程序集清单与目录类似,程序集清单包含以下内容:

  • 程序集的标识(名称和版本)。

  • 文件表,描述构成程序集的其他所有文件(例如,.exe 或 .dll 文件依赖的所创建的其他程序集、位图或自述文件)。

  • 程序集引用列表,列出了应用程序需要的可能由其他人创建的所有外部依赖项(.dll 或其他文件)。程序集既可以引用全局对象,也可以引用私有对象。全局对象可用于所有其他应用程序。在 .NET Core 中,它们与特定的 .NET Core 运行时结合使用。在 .NET Framework 中,它们位于全局程序集缓存中。 命名空间是全局程序集缓存中的程序集示例。私有对象必须位于级别不高于应用程序安装目录的目录中。

必须添加对程序集的引用,才能使用程序集。接下来,可以对 C# 使用 using 指令,或者对 Visual Basic 使用 ,从而选择要使用的项的命名空间。引用和导入程序集后,应用程序可以使用其名称空间的所有可访问类型、属性、方法和其他成员,就好像它们的代码是源文件的一部分一样。

备注

.NET 类库中的大多数程序集都是自动引用的。但是,在某些情况下,系统程序集可能不会自动引用。在 .NET Core 中,可以通过在 Visual Studio 中使用 NuGet 包管理器或者通过向 .csproj 或 .vbproj 项目添加程序集的 <PackageReference> 元素的方式,添加对包含该程序集的 NuGet 包的引用。在 .NET Framework 中,可以通过在 Visual Studio 中使用“添加引用”对话框,或者通过使用 或 Visual Basic 编译器的 命令行选项的方式,添加对该程序集的引用。

在 C# 中,还可以在单个应用程序中使用同一程序集的两个版本。有关详细信息,请参阅。

编译应用程序有以下几种方式:在 Visual Studio 中生成程序集,使用 .NET Core 命令行界面 (CLI) 工具从命令行生成程序集,或者使用命令行编译器生成 .NET Framework 程序集。要详细了解如何使用.NET CLI 工具生成程序集,请参阅 .NET Core 命令行接口 (CLI) 工具要了解如何使用命令行编译器生成程序集,请参阅(适用于 C#),以及从命令行生成(适用于 Visual Basic)。

若要在 Visual Studio 中生成程序集,请选择“生成”菜单上的“生成”。