程序集版本控制

使用公共语言运行时的所有程序集版本控制都在程序集级别完成。 程序集的特定版本和依赖程序集的版本记录在程序集的清单中。 除非被配置文件(应用程序配置文件、发行者策略文件和计算机的管理员配置文件)中的显式版本策略重写,否则运行时的默认版本策略是,应用程序只与它们生成和测试时所用的程序集版本一起运行。

运行时执行几个步骤来解析程序集绑定请求:

  1. 检查原始程序集引用以确定要绑定的程序集的版本。

  2. 检查所有适用的配置文件以应用版本策略。

  3. 从原始程序集引用和配置文件中指定的任何重定向确定正确的程序集,并确定应绑定到调用程序集的版本。

  4. 检查全局程序集缓存、配置文件中指定的代码库,然后使用 运行时如何定位程序集中所述的探测规则检查应用程序的目录和子目录。

下图显示了以下步骤:

显示程序集绑定请求解析中的步骤的图表。

有关配置应用程序的详细信息,请参阅 “配置应用”。 有关绑定策略的详细信息,请参阅 运行时如何定位程序集

版本信息

每个程序集都有两种不同的版本信息表达方式:

  • 程序集的版本号(连同程序集名称和区域性信息)是程序集标识的一部分。 运行时使用此数字来强制实施版本策略,并在运行时在类型解析过程中扮演关键角色。

  • 信息性版本,它是一个字符串,表示仅用于信息性目的的其他版本信息。

程序集版本号

每个程序集都有一个版本号作为其标识的一部分。 因此,运行时会将两个不同版本号的程序集视为完全不同的程序集。 此版本号在物理上以以下格式表示为四部分的字符串:

< 主版本>.<次版本>.<生成号>.<修订版本>

例如,版本 1.5.1254.0 指示 1 作为主要版本,5 作为次要版本,1254 作为内部版本号,0 作为修订号。

版本号与其他标识信息一起存储在程序集清单中,包括程序集名称和公钥,以及与应用程序连接的其他程序集的关系和标识的信息。

生成程序集时,开发工具会记录程序集清单中引用的每个程序集的依赖项信息。 运行时将这些版本号与管理员、应用程序或发布者设置的配置信息结合使用来加载引用程序集的正确版本。

运行时区分常规程序集和强命名程序集,以便进行版本控制。 只对具有强名称的程序集执行版本检查。

有关指定版本绑定策略的信息,请参阅 “配置应用”。 有关运行时如何使用版本信息查找特定程序集的信息,请参阅 运行时如何查找程序集

程序集信息性版本

信息性版本是一个字符串,它仅将其他版本信息附加到程序集,仅供参考;在运行时不使用此信息。 基于文本的信息版本对应于产品的营销文献、包装或产品名称,运行时不使用。 例如,信息性版本可以是“公共语言运行时版本 1.0”或“NET Control SP 2”。 在 Microsoft Windows 中文件属性对话框的“版本”选项卡上,此信息将显示在“产品版本”项中。

注释

虽然可以指定任何文本,但如果字符串不是程序集版本号使用的格式,或者该字符串采用该格式但包含通配符,则编译时会显示警告消息。 此警告无害。

信息版本使用自定义属性 System.Reflection.AssemblyInformationalVersionAttribute表示。 有关信息性版本属性的详细信息,请参阅 “设置程序集属性”。

另请参阅