Controlo de versões da assemblagem

Todo o controle de versão de assemblies que usam o common language runtime é feito no nível de assembly. A versão específica de um assembly e as versões de assemblies dependentes são registradas no manifesto do assembly. A política de versão padrão para o tempo de execução é que os aplicativos são executados somente 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 diretiva do editor e o arquivo de configuração do administrador do computador).

O tempo de execução executa várias etapas para resolver uma solicitação de vinculação de assembly:

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

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

  3. Determina o assembly correto a partir da referência de assembly original e qualquer redirecionamento especificado nos arquivos de configuração e determina a versão que deve ser vinculada ao assembly chamador.

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

A ilustração a seguir mostra essas etapas:

Diagram that shows steps in assembly binding request resolution.

Para obter mais informações sobre como configurar aplicativos, consulte Configurar aplicativos. Para obter mais informações sobre a política de vinculação, consulte Como o tempo de execução localiza assemblies.

Informações sobre a versão

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

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

  • 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 da versão do assembly

Cada montagem tem um número de versão como parte de sua identidade. Como tal, dois assemblies que diferem pelo número de versão são considerados pelo tempo de execução como assemblies completamente diferentes. Este número de versão é fisicamente representado como uma cadeia de caracteres de quatro partes com o seguinte formato:

<versão> principal.<versão> secundária.<número de> compilação.<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 compilação e 0 como o número de revisão.

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

Quando um assembly é criado, a ferramenta de desenvolvimento registra informações de dependência para cada assembly que é referenciado no manifesto do assembly. O tempo de execução 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 tempo de execução distingue entre assemblies regulares e de nome forte para fins de controle de versão. A verificação de versão só ocorre com assemblies de nome forte.

Para obter informações sobre como especificar políticas de vinculação de versão, consulte Configurar aplicativos. 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.

Versão informativa da montagem

A versão informativa é uma cadeia de caracteres que anexa informações de versão adicionais a um assembly apenas 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 nome do produto do produto e não é usada pelo tempo de execução. 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 de propriedades do arquivo no Microsoft Windows, essas informações aparecem no item "Versão do produto".

Nota

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 da versão do assembly ou se estiver nesse formato, mas contiver curingas. Este aviso é inofensivo.

A versão informativa é representada usando o atributo System.Reflection.AssemblyInformationalVersionAttributecustom . Para obter mais informações sobre o atributo de versão informativa, consulte Definir atributos de assembly.

Consulte também