Compartilhar via


Controle de versão do assembly

Todo o controle de versão de assemblies que usam o Common Language Runtime é feito no nível do assembly. A versão específica de uma assemblagem e as versões das assemblagens dependentes são registradas no manifesto da assemblagem. A política de versão padrão para o runtime é que os aplicativos são executados apenas com as versões com as quais foram criados e testados, a menos que sejam substituídos pela política de versão explícita nos arquivos de configuração (o arquivo de configuração do aplicativo, o arquivo de política do editor e o arquivo de configuração de administrador do computador).

O ambiente de runtime realiza várias etapas para resolver uma solicitação de associação de assembly:

  1. Verifica a referência ao assembly original para determinar a versão do assembly a ser associada.

  2. Verifica se todos os arquivos de configuração aplicáveis aplicam a política de versão.

  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.

  4. Verifica o cache global de assemblies, as bases de código especificadas nos arquivos de configuração e então verifica o diretório e os subdiretórios do aplicativo usando as regras de busca explicadas em Como o runtime localiza assemblies.

A ilustração a seguir mostra estas etapas:

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. Para saber mais sobre a política de associação, veja Como o runtime localiza assemblies.

Informações da versão

Cada assembly tem duas maneiras distintas de expressar informações de versão:

  • O número de versão do assembly que, com o nome e a cultura do assembly, faz parte da identidade do assembly. Esse número é usado pelo runtime para impor a política de versão e desempenha um papel fundamental no processo de resolução de tipos em runtime.

  • Uma versão informativa, que é uma cadeia de caracteres que representa informações de versão adicionais incluídas apenas para fins informativos.

Número de versão do assembly

Cada assembly tem um número de versão como parte de sua identidade. Dessa forma, dois assemblies que diferem por número de versão são considerados pelo runtime como assemblies completamente diferentes. Esse número de versão é representado fisicamente como uma cadeia de caracteres de quatro partes com o seguinte formato:

< versão> principal.<versão> secundária.<número de build>.<revisão>

Por exemplo, a versão 1.5.1254.0 indica 1 como a versão principal, 5 como a versão secundária, 1254 como o número de build e 0 como o número de revisão.

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.

Quando um assembly é compilado, a ferramenta de desenvolvimento registra as informações de dependência de cada assembly referenciado no manifesto do assembly. O runtime usa esses números de versão, em conjunto com informações de configuração definidas por um administrador, um aplicativo ou um editor, para carregar a versão adequada de um assembly referenciado.

O runtime distingue entre assemblies regulares e de nome forte para fins de controle de versão. A verificação de versão só ocorre em assemblies com nomes fortes.

Para obter informações sobre como especificar políticas de associação de versão, consulte Configurar aplicativos. Para obter informações sobre como o runtime usa informações de versão para localizar um assembly específico, consulte Como o runtime localiza assemblies.

Versão informativa do assembly

A versão informativa é uma cadeia de caracteres que anexa informações adicionais de versão a um assembly somente para fins informativos; essas informações não são usadas em tempo de execução. A versão informativa baseada em texto corresponde à literatura de marketing, à embalagem ou ao nome do produto e não é usada pelo runtime. Por exemplo, uma versão informativa pode ser "Common Language Runtime versão 1.0" ou "NET Control SP 2". Na guia Versão da caixa de diálogo propriedades do arquivo no Microsoft Windows, essas informações aparecem no item "Versão do Produto".

Observação

Embora você possa especificar qualquer texto, uma mensagem de aviso será exibida na compilação se a cadeia de caracteres não estiver no formato usado pelo número de versão do assembly ou se estiver nesse formato, mas contiver caracteres curinga. Este aviso é inofensivo.

A versão informativa é representada usando o atributo System.Reflection.AssemblyInformationalVersionAttributepersonalizado. Para saber mais sobre o atributo de versão informativa, confira Configuração de atributos de assembly.

Consulte também