WPF アプリと WinForms アプリで OutputType が WinExe に設定されている

OutputType は、Windows Presentation Foundation (WPF) アプリと Windows フォーム アプリでは、自動的に WinExe に設定されます。 OutputTypeWinExe に設定されている場合、アプリの実行時にコンソール ウィンドウは開きません。

変更内容

以前のバージョンの .NET SDK では、プロジェクト ファイルで OutputType に指定されている値が使用されます。 次に例を示します。

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

.NET SDK の 5.0.100 バージョンからは、OutputTypeExe に設定すると、.NET Framework を含むあらゆるフレームワーク バージョンを対象にする WPF アプリと Windows フォーム アプリの場合、自動的に WinExe に変更されます。

<PropertyGroup>
  <OutputType>WinExe</OutputType>
</PropertyGroup>

OutputType がプロジェクト ファイルで指定されていない場合は、既定値の Library になり、その値は変更されません。

変更理由

WPF アプリまたは Windows フォーム アプリの実行時に、ほとんどのユーザーがコンソール ウィンドウを開かないことを前提としています。 さらに、これらの種類のアプリケーションでは .NET SDK が使用され (Windows Desktop SDK が使用されるのではなく)、正しい既定値が設定されるようになります。 さらに、iOS と Android を対象としたサポートが追加されると、これらすべてで同じ出力の種類が使用される場合に、複数のプラットフォーム間で複数のターゲットを指定することが容易になります。

導入されたバージョン

.NET SDK 5.0.100

ユーザー側の対応は必要ありません。 ただし、以前の動作に戻す場合は、プロジェクト ファイルの DisableWinExeOutputInference プロパティを true に設定します。

<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

影響を受ける API

API 分析では検出できません。