Windows フォームおよび WPF プロジェクトで OutputType が Exe から WinExe に変更されません
.NET 5 では、WPF および Windows フォーム アプリの場合に OutputType
が Exe
から WinExe
に自動的に変更されるように変更されました。 .NET 6 では、この変更を元に戻し、SDK によって OutputType
は変更されなくなりました。
導入されたバージョン
.NET 6 RC 1
以前の動作
プロジェクトのターゲットが .NET 5 以降で、OutputType
が Exe
に設定され、UseWindowsForms
または UseWPF
が true
に設定されていた場合、.NET SDK により、OutputType
は WinExe
に変更されます。
新しい動作
OutputType
はプロジェクト ファイルの内容から変更されなくなりました。
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>
カテゴリの変更
この変更はソースの互換性に影響を与えることがあります。
変更理由
.NET 5 の変更は、.NET MAUI アプリをシンプルにすることを意図したものであり、ターゲット フレームワーク上で OutputType
を条件付けする必要はありませんでした。 ただし、
- 自動的に
OutputType
を推論することは、ユーザーの期待を裏切り、開発者をいらだたせるものでした。 詳細については、dotnet/sdk#16563 とそのリンクされている問題を参照してください。 - .NET MAUI アプリの既定では、Windows フォームまたは WPF ではなく WinUI が使用されるため、自動的な推論は .NET MAUI アプリにも適用されません。
推奨アクション
OutputType
が Exe
から WinExe
に変更されたことに依存している場合は、プロジェクト ファイル内で明示的に WinExe
に設定する必要があります。
前回の破壊的変更の影響を受け、.NET 5 で追加されたロジックを無効にするために DisableWinExeOutputInference
を設定する必要があった場合は、今すぐそのプロパティを削除できます。
影響を受ける API
N/A
関連項目
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET