Controle de versão do assemblyAssembly versioning

Todo o controle de versão de assemblies que usam o Common Language Runtime é feito no nível do assembly.All versioning of assemblies that use the common language runtime is done at the assembly level. A versão específica de um assembly e as versões de assemblies dependentes são registradas no manifesto do assembly.The specific version of an assembly and the versions of dependent assemblies are recorded in the assembly's manifest. A política de versão padrão do runtime diz que aplicativos só são executados com as versões com que foram compilados e testados, a menos que essa política de versão seja substituída pela política de versão explícita em arquivos de configuração (o arquivo de configuração do aplicativo, o arquivo de política do editor e o arquivo de configuração do administrador do computador).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).

Observação

O controle de versão só é feito em assemblies com nomes fortes.Versioning is done only on assemblies with strong names.

O ambiente de execução realiza várias etapas para resolver uma solicitação de associação de assembly:The runtime performs several steps to resolve an assembly binding request:

  1. Verifica a referência ao assembly original para determinar a versão do assembly a ser associada.Checks the original assembly reference to determine the version of the assembly to be bound.

  2. Verifica todos os arquivos de configuração aplicáveis para aplicar uma política de versão.Checks for all applicable configuration files to apply version policy.

  3. Determina o assembly correto com base na referência do assembly original e qualquer redirecionamento especificado nos arquivos de configuração, além de determinar a versão que deve ser associada ao assembly de chamada.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. Verifica o cache de assembly global, codebases especificados em arquivos de configuração e, em seguida, verifica o diretório e os subdiretórios do aplicativo usando as regras de investigação explicadas em como o tempo de execução localiza assemblies.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.

A seguinte ilustração mostra estas etapas:The following illustration shows these steps:

Diagrama que mostra as etapas na resolução da solicitação de associação de assembly.

Para obter mais informações sobre como configurar aplicativos, consulte configurar aplicativos.For more information about configuring applications, see Configure apps. Para obter mais informações sobre a política de associação, consulte como o tempo de execução localiza assemblies.For more information about binding policy, see How the runtime locates assemblies.

Informações de versãoVersion information

Cada assembly tem duas maneiras diferentes de expressar informações de versão:Each assembly has two distinct ways of expressing version information:

  • O número de versão do assembly que, com o nome e a cultura do assembly, faz parte da identidade do assembly.The assembly's version number, which, together with the assembly name and culture information, is part of the assembly's identity. Esse número é usado pelo runtime para impor a política de versão e desempenha um papel fundamental no processo de resolução do tipo no runtime.This number is used by the runtime to enforce version policy and plays a key part in the type resolution process at run time.

  • Uma versão informativa, uma cadeia de caracteres que representa informações de versão adicionais incluída apenas para fins informativos.An informational version, which is a string that represents additional version information included for informational purposes only.

Número de versão do assemblyAssembly version number

Cada assembly tem um número de versão como parte de sua identidade.Each assembly has a version number as part of its identity. Dessa forma, dois assemblies que diferem pelo número de versão são considerados pelo ambiente de execução assemblies completamente diferentes.As such, two assemblies that differ by version number are considered by the runtime to be completely different assemblies. Esse número de versão é representado fisicamente como uma cadeia de caracteres em quatro partes com o seguinte formato:This version number is physically represented as a four-part string with the following format:

<versão principal>.<versão secundária>.<número da compilação>.<revisão><major version>.<minor version>.<build number>.<revision>

Por exemplo, a versão 1.5.1254.0 indica que 1 é a versão principal, 5 é a versão secundária, 1254 é o número da versão e 0 é o número de revisão.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.

O número da versão é armazenado no manifesto do assembly com outras informações de identidade, incluindo o nome e a chave pública do assembly, bem como informações sobre relacionamentos e identidades de outros assemblies conectados ao aplicativo.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.

Quando um assembly é compilado, a ferramenta de desenvolvimento registra as informações de dependência de cada assembly referenciado no manifesto do assembly.When an assembly is built, the development tool records dependency information for each assembly that is referenced in the assembly manifest. O runtime usa esses números de versão, com informações de configuração definidas por um administrador, por um aplicativo ou por um editor, para carregar a versão apropriada de um assembly referenciado.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.

O runtime diferencia assemblies regulares de assemblies com nomes fortes para fins de controle de versão.The runtime distinguishes between regular and strong-named assemblies for the purposes of versioning. A verificação de versão só ocorre em assemblies com nomes fortes.Version checking only occurs with strong-named assemblies.

Para obter informações sobre como especificar políticas de associação de versão, consulte configurar aplicativos.For information about specifying version binding policies, see Configure apps. Para obter informações sobre como o tempo de execução usa informações de versão para localizar um assembly específico, consulte como o tempo de execução localiza assemblies.For information about how the runtime uses version information to find a particular assembly, see How the runtime locates assemblies.

Versão informativa do assemblyAssembly informational version

A versão informativa é uma cadeia de caracteres que anexa informações adicionais de versão a um assembly apenas para fins informativos; essa informação não é usada no tempo de execução.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. A versão informativa com base em texto corresponde à literatura de marketing, ao empacotamento ou ao nome do produto e não é usada pelo runtime.The text-based informational version corresponds to the product's marketing literature, packaging, or product name and is not used by the runtime. Por exemplo, uma versão informativa poderia ser "Common Language Runtime versão 1.0" ou "NET Control SP 2".For example, an informational version could be "Common Language Runtime version 1.0" or "NET Control SP 2". Na guia Versão da caixa de diálogo de propriedades do arquivo no Microsoft Windows, essas informações são exibidas no item "Versão do Produto".On the Version tab of the file properties dialog in Microsoft Windows, this information appears in the item "Product Version".

Observação

Embora você possa especificar qualquer texto, uma mensagem de aviso aparecerá durante a compilação se a cadeia de caracteres não estiver no formato usado pelo número de versão do assembly ou se ela estiver no formato correto, mas contiver curingas.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. Esse aviso é inofensivo.This warning is harmless.

A versão informativa é representada usando-se o atributo personalizado System.Reflection.AssemblyInformationalVersionAttribute.The informational version is represented using the custom attribute System.Reflection.AssemblyInformationalVersionAttribute. Para obter mais informações sobre o atributo versão informativa, consulte set Assembly Attributes.For more information about the informational version attribute, see Set assembly attributes.

Consulte tambémSee also