次の方法で共有


Windows フォームおよび WPF プロジェクトの OutputType が Exe から WinExe に変更されない

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

導入されたバージョン

.NET 6 RC 1

以前の動作

プロジェクトの対象が .NET 5 以上で、 OutputTypeExeに設定され、 UseWindowsForms または UseWPFtrueに設定されている場合、.NET SDK は OutputTypeWinExeに変更します。

新しい動作

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

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

カテゴリの変更

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

変更の理由

.NET 5 の変更は、ターゲット フレームワークでOutputTypeを調整する必要がないように、.NET MAUI アプリを簡略化することを目的としていました。 ただし

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

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

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

影響を受ける API

なし

こちらも参照ください