Управление версиями сборокAssembly Versioning

Управление версиями сборок, использующих среду CLR, производится полностью на уровне сборки.All versioning of assemblies that use the common language runtime is done at the assembly level. Конкретная версия сборки и версии зависимых от нее сборок указываются в манифесте сборки.The specific version of an assembly and the versions of dependent assemblies are recorded in the assembly's manifest. Политика управления версиями по умолчанию для среды выполнения заключается в том, что приложения могут выполняться только с версиями, с которыми они были разработаны и протестированы, если иное не переопределено явной политикой использования версий в файлах конфигурации (в файле конфигурации приложения, файле политики издателя и файле конфигурации администратора компьютера).The default version policy for the runtime is that applications run only with the versions they were built and tested with, unless overridden by explicit version policy in configuration files (the application configuration file, the publisher policy file, and the computer's administrator configuration file).

Примечание

Управление версиями выполняется только для сборок со строгими именами.Versioning is done only on assemblies with strong names.

Среда выполнения предпринимает несколько шагов для разрешения запроса привязки сборок.The runtime performs several steps to resolve an assembly binding request:

  1. Проверяет исходную ссылку на сборку для определения версии сборки, с которой будет связано приложение.Checks the original assembly reference to determine the version of the assembly to be bound.

  2. Проверяет все применимые файлы конфигурации для использования политики управления версиями.Checks for all applicable configuration files to apply version policy.

  3. Определяет правильную сборку на основании исходной ссылки на сборку и любого указанного в файлах конфигурации перенаправления, а также версию, которая должна связываться с вызывающей сборкой.Determines the correct assembly from the original assembly reference and any redirection specified in the configuration files, and determines the version that should be bound to the calling assembly.

  4. Проверяет глобальный кэш сборок и указанные в файлах конфигурации базы кода, а затем проверяет папку приложения и вложенные папки с помощью правил проверки, описанных в разделе Обнаружение сборок в среде выполнения.Checks the global assembly cache, codebases specified in configuration files, and then checks the application's directory and subdirectories using the probing rules explained in How the Runtime Locates Assemblies.

Указанные шаги показаны на следующей иллюстрации.The following illustration shows these steps.

сборка, расширяющая myAssembly.assembly extern myAssembly
Разрешение запроса привязки сборкиResolving an assembly binding request

Дополнительные сведения о настройке приложений см. в разделе Настройка приложений.For more information about configuring applications, see Configuring Apps. Дополнительные сведения о политике привязки см. в разделе Обнаружение сборок в среде выполнения.For more information about binding policy, see How the Runtime Locates Assemblies.

Сведения о версииVersion Information

В каждой сборке есть два различных способа задания сведений о версии.Each assembly has two distinct ways of expressing version information:

  • Номер версии сборки, который наряду с именем сборки и сведениями о языке и региональных параметрах является частью удостоверения сборки.The assembly's version number, which, together with the assembly name and culture information, is part of the assembly's identity. Это номер используется средой выполнения для применения политики управления версиями и играет ключевую роль в процессе разрешения типов на этапе выполнения.This number is used by the runtime to enforce version policy and plays a key part in the type resolution process at run time.

  • Информационная версия, которая представляет собой строку с дополнительными сведениями о версии, служащую исключительно в информационных целях.An informational version, which is a string that represents additional version information included for informational purposes only.

Номер версии сборкиAssembly Version Number

Каждая сборка имеет номер версии, являющийся частью ее удостоверения.Each assembly has a version number as part of its identity. Следовательно, две сборки, имеющие разные номера версий, рассматриваются средой выполнения как совершенно разные сборки.As such, two assemblies that differ by version number are considered by the runtime to be completely different assemblies. Этот номер версии физически представляется в виде строки из четырех частей следующего формата:This version number is physically represented as a four-part string with the following format:

<основной номер версии>.< дополнительный номер версии>.< номер сборки>.< номер редакции><major version>.<minor version>.<build number>.<revision>

Например, в версии "1.5.1254.0" число "1" представляет основную версию, "5" — младший номер версии, "1254" — номер построения, а "0" — номер редакции.For example, version 1.5.1254.0 indicates 1 as the major version, 5 as the minor version, 1254 as the build number, and 0 as the revision number.

Номер версии сохраняется в манифесте сборки вместе с другими данными удостоверения, включая имя сборки и открытый ключ, а также сведения о связях и удостоверениях других подключаемых к приложению сборок.The version number is stored in the assembly manifest along with other identity information, including the assembly name and public key, as well as information on relationships and identities of other assemblies connected with the application.

При построении сборки средство разработки записывает сведения о зависимостях каждой сборки, на которую имеется ссылка, в манифест сборки.When an assembly is built, the development tool records dependency information for each assembly that is referenced in the assembly manifest. Среда выполнения использует эти номера версий вместе с конфигурационными данными, установленными администратором, приложением или издателем для загрузки нужной версии сборки, на которую имеется ссылка.The runtime uses these version numbers, in conjunction with configuration information set by an administrator, an application, or a publisher, to load the proper version of a referenced assembly.

С целью управления версиями среда выполнения разделяет обычные сборки и сборки со строгими именами.The runtime distinguishes between regular and strong-named assemblies for the purposes of versioning. Проверка версий производится только для сборок со строгими именами.Version checking only occurs with strong-named assemblies.

Сведения о политиках привязки версий см. в разделе Настройка приложений.For information about specifying version binding policies, see Configuring Apps. Дополнительные сведения о способе использования средой выполнения сведений о версии для поиска определенной сборки см. в разделе Обнаружение сборок в среде выполнения.For information about how the runtime uses version information to find a particular assembly, see How the Runtime Locates Assemblies.

Информационная версия сборкиAssembly Informational Version

Информационная версия сборки представляет собой строку, которая добавляет к сборке дополнительные данные и служит только для информации. Она не используется на этапе выполнения.The informational version is a string that attaches additional version information to an assembly for informational purposes only; this information is not used at run time. Информационная версия (в текстовом формате) соответствует описанию продукта на рынке, данным о комплектации или названии продукта. Эта версия не используется средой выполнения.The text-based informational version corresponds to the product's marketing literature, packaging, or product name and is not used by the runtime. Так, информационная версия может быть задана как "Среда CLR версии 1.0" или "Элемент управления NET с пакетом обновления 2".For example, an informational version could be "Common Language Runtime version 1.0" or "NET Control SP 2". В Microsoft Windows эта информация отображается в элементе "Версия продукта" на вкладке "Версии" в диалоговом окне свойств файла.On the Version tab of the file properties dialog in Microsoft Windows, this information appears in the item "Product Version".

Примечание

Хотя можно задать любой текст, при компиляции появится предупреждение, если строка имеет формат отличный от формата номера версии сборки или если она имеет правильный формат, но содержит подстановочные знаки.Although you can specify any text, a warning message appears on compilation if the string is not in the format used by the assembly version number, or if it is in that format but contains wildcards. Это не опасное предупреждение.This warning is harmless.

Информационная версия представляется с помощью пользовательского атрибута System.Reflection.AssemblyInformationalVersionAttribute.The informational version is represented using the custom attribute System.Reflection.AssemblyInformationalVersionAttribute. Дополнительные сведения об атрибуте информационной версии см. в разделе Настройка атрибутов сборки.For more information about the informational version attribute, see Setting Assembly Attributes.

См. такжеSee Also

Обнаружение сборок в среде выполненияHow the Runtime Locates Assemblies
Настройка приложенийConfiguring Apps
Настройка атрибутов сборкиSetting Assembly Attributes
Сборки в среде CLRAssemblies in the Common Language Runtime