CA1016: Marcar assemblies com AssemblyVersionAttribute

Property Valor
ID da regra CA1016
Título Marcar assemblies com AssemblyVersionAttribute
Categoria Projetar
Correção interruptiva ou sem interrupção Sem interrupção
Habilitado por padrão no .NET 8 Como sugestão

Causa

O assembly não tem número de versão.

Descrição da regra

A identidade de um assembly é composta pelas seguintes informações:

  • Nome do assembly

  • Número de versão

  • Cultura

  • Chave pública (para assemblies com nomes fortes).

O .NET usa o número de versão para identificar com exclusividade um assembly e associar a tipos em assemblies com nomes fortes. O número de versão é usado com a versão e a política do publicador. Por padrão, os aplicativos só são executados com a versão do assembly com que foram criados.

Como corrigir violações

Para corrigir uma violação dessa regra, adicione um número de versão ao assembly usando o atributo System.Reflection.AssemblyVersionAttribute.

Quando suprimir avisos

Não suprima um aviso dessa regra para assemblies usados por terceiros ou em um ambiente de produção.

Suprimir um aviso

Para suprimir apenas uma violação, adicione diretivas de pré-processador ao arquivo de origem a fim de desabilitar e, em seguida, reabilitar a regra.

#pragma warning disable CA1016
// The code that's violating the rule is on this line.
#pragma warning restore CA1016

Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.

[*.{cs,vb}]
dotnet_diagnostic.CA1016.severity = none

Para obter mais informações, confira Como suprimir avisos de análise de código.

Exemplo

O exemplo a seguir mostra uma montagem que tem o atributo AssemblyVersionAttribute aplicado.

using System;
using System.Reflection;

[assembly: AssemblyVersionAttribute("4.3.2.1")]
namespace DesignLibrary {}
<Assembly: AssemblyVersionAttribute("4.3.2.1")>
Namespace DesignLibrary
End Namespace

Confira também