Udostępnij za pośrednictwem


Parametr OutputType nie został zmieniony z Exe na WinExe dla projektów Windows Forms i WPF

Na platformie .NET 5 wprowadzono zmianę w celu automatycznego zmiany OutputType z Exe na WinExe dla aplikacji WPF i Windows Forms. Na platformie .NET 6 przywracamy te zmiany i OutputType nie zostaną już zmienione przez zestaw SDK.

Wprowadzona wersja

.NET 6 RC 1

Poprzednie zachowanie

Jeśli projekt docelowy dla platformy .NET 5 lub nowszej został OutputType ustawiony na Exe, a UseWindowsForms wartość lub UseWPF została ustawiona na true, zestaw SDK platformy .NET zmieni się OutputType na WinExe.

Nowe zachowanie

OutputType program nie jest już zmieniany z elementów w pliku projektu.

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

Kategoria zmiany

Ta zmiana może mieć wpływ na zgodność źródła.

Przyczyna wprowadzenia zmiany

Zmiana platformy .NET 5 miała na celu uproszczenie aplikacji .NET MAUI, dzięki czemu OutputType nie trzeba będzie mieć warunków na platformie docelowej. Jednak:

  • Automatyczne wnioskowanie OutputType złamało oczekiwania użytkowników i sfrustrowanych deweloperów. Aby uzyskać więcej informacji, zobacz dotnet/sdk#16563 i powiązane problemy.
  • Aplikacje MAUI platformy .NET będą domyślnie używać interfejsu WinUI, a nie windows Forms ani WPF, więc automatyczne wnioskowanie nie ma nawet zastosowania do aplikacji .NET MAUI.

Jeśli polegano na tym, że OutputType zmieniono wartość z Exe na WinExe, należy jawnie ustawić ją na WinExe w pliku projektu.

Jeśli miała to wpływ na poprzednią zmianę powodującą niezgodność i musiała zostać ustawiona DisableWinExeOutputInference w celu wyłączenia logiki, która została dodana na platformie .NET 5, możesz teraz usunąć te właściwości.

Dotyczy interfejsów API

Nie dotyczy

Zobacz też