Usar os atributos AssemblyVersion e AssemblyFileVersion

Este artigo apresenta como usar AssemblyVersion atributos e AssemblyFileVersion no arquivo AssemblyInfo.cs.

Versão original do produto: .NET Framework
Número original do KB: 556041

Resumo

AssemblyInfo.cs fornece dois atributos para definir diferentes tipos de números de versão. Este artigo explica como usar esses atributos efetivamente.

O Microsoft .NET Framework permite que você defina dois tipos diferentes de números de versão para cada assembly.

Versão do assembly

AssemblyVersion é o número de versão usado pela estrutura durante o build e em runtime para localizar, vincular e carregar os assemblies. Quando você adiciona uma referência a um assembly em seu projeto, esse número de versão é inserido. No runtime, o CLR (Common Language Runtime) usa esse número de versão para carregar o assembly.

Observação: essa versão é usada juntamente com o nome do assembly, o token de chave pública e as informações de cultura somente se o assembly for fortemente nomeado (assinado). Se o assembly não for de nome forte, somente o nome do arquivo será usado para carregamento.

Versão do AssemblyFile

AssemblyFileVersion é o número de versão atribuído a um arquivo de assembly, assim como é utilizado no sistema de arquivos. Ele é exibido pelo Windows Explorer e nunca é usado pelo .NET Framework ou runtime para referência.

Atributos em AssemblyInfo.cs

// Version information for an assembly consists of the following four values:
// Major Version
// Minor Version
// Build Number
// Revision
[assembly: AssemblyVersion("1.0.0.0")]  
[assembly: AssemblyFileVersion("1.0.0.0")]

Usar um asterisco (*) no lugar de um número específico permite que o compilador incremente automaticamente o valor com cada build.

Por exemplo, se você estiver criando um assembly de framework usado por muitos desenvolvedores e lançar novas versões com frequência (por exemplo, diariamente) e os assemblies tiverem nomes fortes, os desenvolvedores precisarão atualizar suas referências a cada versão. Pode ser complicado e pode levar a referências erradas.

Uma abordagem melhor nesses cenários de grupo fechado e volátil é manter o AssemblyVersion fixo e atualizar apenas o AssemblyFileVersion. Ele permite que os desenvolvedores substituam o assembly no caminho de referência sem alterar suas referências de projeto.

Para compilações de lançamento central ou final, é recomendável atualizar o AssemblyVersion para refletir alterações significativas. Nesses casos, o AssemblyFileVersion normalmente é atualizado para alinhar-se com o AssemblyVersion visando consistência.