Compartilhar via


Aviso de RuntimeIdentifier quando autossuficiente não é especificado

Se você especificar um RuntimeIdentifier no arquivo de projeto ou usar a opção -r com dotnet, o padrão do SDK do .NET será as saídas de build, publicação e execução como aplicativos autossuficientes. O padrão sem especificar um RuntimeIdentifier é ter um aplicativo dependente de estrutura. Essa alteração apresentará um novo aviso (NETSDK1179) se você especificar um RuntimeIdentifier sem especificar se o aplicativo é autossuficiente.

Versão introduzida

.NET 6 RC 1

Comportamento anterior

Em versões anteriores, a especificação de um RuntimeIdentifier alteraria silenciosamente o aplicativo de dependente de estrutura para autossuficiente.

Novo comportamento

No .NET 6, se você especificar um RuntimeIdentifier sem especificar se o aplicativo é autossuficiente, você receberá o seguinte aviso:

aviso NETSDK1179: uma das opções'--self-contained' ou '--no-self-contained' é necessária quando '--runtime ' é usado.

Por exemplo, o seguinte comando gera o aviso:

dotnet publish -r win-x86

Categoria da alteração

Essa alteração pode afetar a compatibilidade com a origem.

Motivo da alteração

O padrão sem especificar um RuntimeIdentifier é gerar um aplicativo dependente da estrutura. Esse padrão causou confusão para muitos clientes. A finalidade de adicionar o aviso é:

  • Alertar os clientes sobre a alteração de comportamento para o padrão de aplicativo dependente de estrutura.
  • Incentivar os clientes a escolher especificamente o tipo de aplicativo que eles desejam criar.
  • Preparar os clientes para possivelmente alterar o comportamento no .NET 7 para o padrão de dependente da estrutura.
  • Especifique um valor booliano no arquivo de projeto para SelfContained.
  • Ou adicione --self-contained com um valor ao comando de build ou de publicação.

APIs afetadas

N/D

Confira também