Share via


Windows フォームおよび WPF プロジェクトで OutputType が Exe から WinExe に変更されません

.NET 5 では、WPF および Windows フォーム アプリの場合に OutputTypeExe から WinExe に自動的に変更されるように変更されました。 .NET 6 では、この変更を元に戻し、SDK によって OutputType は変更されなくなりました。

導入されたバージョン

.NET 6 RC 1

以前の動作

プロジェクトのターゲットが .NET 5 以降で、OutputTypeExe に設定され、UseWindowsForms または UseWPFtrue に設定されていた場合、.NET SDK により、OutputTypeWinExe に変更されます。

新しい動作

OutputType はプロジェクト ファイルの内容から変更されなくなりました。

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

カテゴリの変更

この変更はソースの互換性に影響を与えることがあります。

変更理由

.NET 5 の変更は、.NET MAUI アプリをシンプルにすることを意図したものであり、ターゲット フレームワーク上で OutputType を条件付けする必要はありませんでした。 ただし、

  • 自動的に OutputType を推論することは、ユーザーの期待を裏切り、開発者をいらだたせるものでした。 詳細については、dotnet/sdk#16563 とそのリンクされている問題を参照してください。
  • .NET MAUI アプリの既定では、Windows フォームまたは WPF ではなく WinUI が使用されるため、自動的な推論は .NET MAUI アプリにも適用されません。

OutputTypeExe から WinExe に変更されたことに依存している場合は、プロジェクト ファイル内で明示的に WinExe に設定する必要があります。

前回の破壊的変更の影響を受け、.NET 5 で追加されたロジックを無効にするために DisableWinExeOutputInference を設定する必要があった場合は、今すぐそのプロパティを削除できます。

影響を受ける API

N/A

関連項目