.NET 5 では、WPF および Windows フォーム アプリの OutputType を Exe から WinExe に自動的に変更する変更が行われました。 .NET 6 では、その変更を元に戻します。 OutputType は SDK によって変更されなくなります。
導入されたバージョン
.NET 6 RC 1
以前の動作
プロジェクトの対象が .NET 5 以上で、 OutputType が Exeに設定され、 UseWindowsForms または UseWPF が trueに設定されている場合、.NET SDK は OutputType を WinExeに変更します。
新しい動作
OutputType は、プロジェクト ファイル内の内容から変更されなくなりました。
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>
カテゴリの変更
この変更は、ソースの互換性に影響を与える可能性があります。
変更の理由
.NET 5 の変更は、ターゲット フレームワークでOutputTypeを調整する必要がないように、.NET MAUI アプリを簡略化することを目的としていました。 ただし
-
OutputTypeを自動的に推測すると、ユーザーの期待が破られ、開発者の不満が解消されます。 詳細については、 dotnet/sdk#16563 とそのリンクされた問題を参照してください。 - .NET MAUI アプリでは、Windows フォームや WPF ではなく WinUI が既定で使用されるため、自動推論は .NET MAUI アプリにも適用されません。
推奨されるアクション
OutputTypeがExeからWinExeに変更されたという事実に依存している場合は、明示的にプロジェクト ファイルでWinExeに設定する必要があります。
以前の破壊的変更の影響を受け、.NET 5 で追加されたロジックを無効にするために DisableWinExeOutputInference を設定する必要がある場合は、ここでそのプロパティを削除できます。
影響を受ける API
なし
こちらも参照ください
.NET