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.
Ação recomendada
- 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