Compartilhar via


O OutputType não foi alterado de Exe para WinExe para projetos do Windows Forms e WPF

No .NET 5, foi implementada uma alteração para alterar OutputType automaticamente de Exe para WinExe em aplicativos WPF e Windows Forms. No .NET 6, estamos revertendo essa alteração e OutputType não será mais alterado pelo SDK.

Versão introduzida

.NET 6 RC 1

Comportamento anterior

Se um projeto direcionado ao .NET 5 ou superior fosse configurado com OutputType para Exe, e UseWindowsForms ou UseWPF fosse configurado para true, então o SDK do .NET alteraria OutputType para WinExe.

Novo comportamento

OutputType não é mais alterado de como está no arquivo de projeto.

<PropertyGroup>
  <OutputType>Exe</OutputType>
</PropertyGroup>

Alterar categoria

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

Motivo da alteração

A alteração do .NET 5 destinava-se a simplificar os aplicativos MAUI do .NET, de modo que OutputType não precisasse ser condicionada à estrutura de destino. No entanto:

  • Inferir OutputType automaticamente quebrou as expectativas do usuário e frustrou os desenvolvedores. Para obter mais informações, consulte dotnet/sdk#16563 e seus problemas vinculados.
  • Os aplicativos MAUI do .NET usarão o WinUI por padrão, não o Windows Forms ou o WPF, portanto, a inferência automática nem se aplica a aplicativos MAUI do .NET.

Se você se baseou no fato de que OutputType foi alterado de Exe para WinExe, você deve defini-lo WinExe explicitamente no arquivo de projeto.

Se você foi afetado pela alteração interruptiva anterior e precisou definir DisableWinExeOutputInference para desabilitar a lógica adicionada ao .NET 5, poderá remover essa propriedade agora.

APIs afetadas

Não aplicável

Consulte também