程序集 (CLI)

通用语言基础架构 (CLI) 中的程序集是编译得到的，供CLR进一步编译执行的代码库。代码是用通用中间语言（CIL）表示，在运行时被即时编译为机器语言。在.NET Framework实现中，这种即时编译是通用语言运行时 (CLR)的一部分。
CLI程序集可分为两类：进程程序集（EXE）、库程序集（DLL）。
一个程序集可包含一个或多个文件。代码文件成为模块（module）。

程序集版本

CLI程序集可以用版本信息，以避免由于共享的程序集版本差别引起的应用程序冲突。 However, this does not eliminate all possible versioning conflicts between assemblies.

引用程序集

通过C#编译器的/reference标记，可以引用一个可执行代码库。

程序集延迟签名

一个共享程序集是强名字的，但在开发时不产生私钥，仅当部署时才产生私钥。

程序集的语言

程序集编译为CIL代码，这是一种中间语言。框架内部把CIL字节码转换为本地的汇编代码。对于打印"Hello World"的程序，其等效的CIL代码是：
 .method private hidebysig static void  Main(string[] args) cil managed {
  .entrypoint
  .custom instance void [mscorlib]System.STAThreadAttribute::.ctor() = ( 01 00 00 00 )
  // Code size       11 (0xb)
  .maxstack  1
  IL_0000:  ldstr      "Hello World"
  IL_0005:  call       void [mscorlib]System.Console::WriteLine(string)
  IL_000a:  ret } // end of method Class1::Main
CIL代码装入String到运行栈，然后调用WriteLine函数再返回。