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 SDK do .NET define como padrão que as saídas de build, publicação e execução sejam aplicativos autocontidos. O padrão sem especificar um RuntimeIdentifier é ter um aplicativo dependente de estrutura. Essa mudança introduz um novo aviso (NETSDK1179) se você especificar um RuntimeIdentifier sem esclarecer se o aplicativo funciona de maneira independente.

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 é independente, você verá o seguinte aviso:

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

Por exemplo, o comando a seguir gerará o aviso:

dotnet publish -r win-x86

Alterar categoria

Essa alteração pode afetar a compatibilidade da fonte .

Motivo da alteração

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

  • Avisar os clientes sobre a mudança de comportamento para adotar por padrão um aplicativo dependente de framework.
  • Incentive os clientes a escolher especificamente o tipo de aplicativo que 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 build ou publish.

APIs afetadas

Não aplicável

Consulte também