Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A ferramenta Microsoft.DotNet.ApiCompat.Tool permite que você execute verificações de compatibilidade de API fora do MSBuild. A ferramenta tem dois modos:
- Compare um pacote com um pacote de referência.
- Compare uma montagem com uma montagem de referência.
Instalar
Para instalar a ferramenta, execute o comando a seguir.
dotnet tool install --global Microsoft.DotNet.ApiCompat.Tool
Para obter mais informações sobre como instalar ferramentas globais, consulte Instalar uma ferramenta global.
Uso
Microsoft.DotNet.ApiCompat.Tool [command] [options]
- ou -
apicompat [command] [options]
Comandos
package | --package <PACKAGE_FILE>Valida a compatibilidade dos ativos do pacote. Caso não especificado, a ferramenta comparará os conjuntos.
<PACKAGE_FILE>especifica o caminho para o arquivo de pacote.
Opções
Algumas opções se aplicam à validação do assembly e do pacote. Outros se aplicam somente a conjuntos ou somente a pacotes.
Opções gerais
--versionMostra informações de versão.
--generate-suppression-fileGera um arquivo de supressão de compatibilidade.
--preserve-unnecessary-suppressionsPreserva supressões desnecessárias ao regenerar o arquivo de supressão.
Quando um arquivo de supressão existente é regenerado, seu conteúdo é lido, desserializado em um conjunto de supressões e, a seguir, armazenado em uma lista. Algumas das supressões podem não ser mais necessárias se a incompatibilidade tiver sido corrigida. Quando as supressões são serializadas de volta ao disco, você pode optar por manter todas as expressões existentes (desserializadas) especificando essa opção.
--permit-unnecessary-suppressionsPermite supressões desnecessárias no arquivo de supressão.
--suppression-file <FILE>Especifica o caminho para um ou mais arquivos de supressão dos quais ler.
--suppression-output-file <FILE>Especifica o caminho para um arquivo de supressão no qual gravar quando
--generate-suppression-filefor especificado. Se não for especificado, o primeiro--suppression-filecaminho será usado.--noWarn <NOWARN_STRING>Especifica as IDs de diagnóstico a serem suprimidas. Por exemplo,
"$(NoWarn);PKV0001".--respect-internalsVerifica as APIs
internalepublic.--roslyn-assemblies-path <FILE>Especifica o caminho para o diretório que contém os assemblies Microsoft.CodeAnalysis que você deseja usar. Você só precisará definir essa propriedade se quiser testar com um compilador mais recente que o que está no SDK.
-v, --verbosity [high|low|normal]Controla o detalhamento do nível de log. Os valores permitidos são
high,normalelow. O padrão énormal.--enable-rule-cannot-change-parameter-nameHabilita a regra que verifica se os nomes de parâmetro foram alterados em métodos públicos.
--enable-rule-attributes-must-matchHabilita a regra que verifica se os atributos correspondem.
--exclude-attributes-file <FILE>Especifica o caminho para um ou mais arquivos que contêm atributos a serem excluídos no formato DocId .
Opções específicas do assembly
Essas opções só são aplicáveis quando as assemblies são comparadas.
-l, --left, --left-assembly <PATH>Especifica o caminho para um ou mais assemblies que servem como o lado esquerdo para comparação. Essa opção é necessária ao comparar assemblies.
-r, --right, --right-assembly <PATH>Especifica o caminho para um ou mais assemblies que servem como o lado direito para comparação. Essa opção é necessária ao comparar assemblies.
--strict-modeExecuta verificações de compatibilidade de API no modo estrito.
Opções específicas do pacote
Essas opções só são aplicáveis quando os pacotes são comparados.
--baseline-packageEspecifica o caminho para um pacote de linha de base para validar o pacote atual.
--enable-strict-mode-for-compatible-tfmsValida a compatibilidade da API no modo estrito para assemblies de contrato e implementação para todas as estruturas de destino compatíveis. O padrão é
true.--enable-strict-mode-for-compatible-frameworks-in-packageValida a compatibilidade da API no modo estrito para assemblies compatíveis com base em sua estrutura de destino.
--enable-strict-mode-for-baseline-validationValida a compatibilidade da API no modo estrito para verificações de linha de base do pacote.
--package-assembly-referencesEspecifica os caminhos para referências de assembly ou seus diretórios subjacentes para uma estrutura de destino específica no pacote. Separe vários valores com uma vírgula.
--baseline-package-assembly-referencesEspecifica os caminhos para referências de assembly ou seus diretórios subjacentes para uma estrutura de destino específica no pacote de linha de base. Separe vários valores com uma vírgula.
--baseline-package-frameworks-to-ignoreEspecifica o conjunto de estruturas de destino a serem ignoradas no pacote de linha de base. A cadeia de caracteres da estrutura deve corresponder exatamente ao nome da pasta no pacote da linha de base.
Exemplos
O comando a seguir compara as versões atuais e de linha de base de um assembly.
apicompat --left bin\Release\net8.0\LibApp5.dll --right bin\Release\net8.0\LibApp5-baseline.dll
O comando a seguir compara as versões atuais e de linha de base de um pacote.
apicompat package "bin\Release\LibApp5.1.0.0.nupkg" --baseline-package "bin\Release\LibApp5.2.0.0.nupkg"
O exemplo a seguir mostra o comando para comparar as versões atuais e de linha de base de um assembly, incluindo a verificação de alterações no nome do parâmetro. O exemplo também mostra a aparência da saída se um nome de parâmetro tiver sido alterado.
>apicompat -l LibApp5-baseline.dll -r LibApp5.dll --enable-rule-cannot-change-parameter-name
API compatibility errors between 'LibApp5-baseline.dll' (left) and 'LibApp5.dll' (right):
CP0017: Parameter name on member 'KitchenHelpers.ToastBreadAsync(int, int)'
changed from 'slices' to 'numSlices'.
API breaking changes found. If those are intentional, the APICompat
suppression file can be updated by specifying the '--generate-suppression-file' parameter.