OutputType wurde für Windows Forms- und WPF-Projekte nicht von Exe in WinExe geändert

In .NET 5 wurde eine Änderung vorgenommen, um automatisch OutputType von Exe in WinExe für WPF- und Windows Forms-Apps zu ändern. In .NET 6 setzen wir diese Änderung zurück und OutputType wird vom SDK nicht mehr geändert.

Eingeführt in Version

.NET 6 RC 1

Vorheriges Verhalten

Wenn ein Projekt auf .NET 5 oder höher abzielte und OutputType auf Exe und UseWindowsForms oder UseWPF auf true festgelegt waren, dann hat das . NET SDK OutputType in WinExe geändert.

Neues Verhalten

OutputType wird nicht mehr gegenüber der Projektdatei geändert.

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

Ändern der Kategorie

Diese Änderung könnte sich auf die Quellkompatibilität auswirken.

Grund für die Änderung

Die .NET 5-Änderung sollte .NET MAUI-Apps vereinfachen, sodass OutputType nicht im Zielframework angegeben werden musste. Dabei gilt jedoch Folgendes:

  • Der automatische Rückschluss von OutputType hat die Erwartungen der Benutzer nicht erfüllt und Entwickler frustriert. Weitere Informationen finden Sie unter dotnet/sdk#16563 und in den verwandten Problemen.
  • .NET MAUI-Apps verwenden WinUI standardmäßig (nicht Windows Forms oder WPF), sodass der automatische Rückschluss nicht einmal für .NET MAUI-Apps gilt.

Wenn Sie sich auf die Tatsache verlassen haben, dass OutputType von Exe in WinExe geändert wurde, sollten Sie die Angabe in der Projektdatei explizit auf WinExe festlegen.

Wenn Sie von dem vorherigen Breaking Change betroffen waren und DisableWinExeOutputInference festlegen mussten, um die Logik zu deaktivieren, die in .NET 5 hinzugefügt wurde, können Sie diese Eigenschaft jetzt entfernen.

Betroffene APIs

Nicht zutreffend

Siehe auch