对于 WPF 和 WinForms 应用,OutputType 设置为 WinExe

对于 Windows Presentation Foundation (WPF) 和 Windows 窗体应用,OutputType 自动设置为 WinExe。 如果 OutputType 设置为 WinExe,则在执行应用时不会打开控制台窗口。

更改说明

在早期版本的 .NET SDK 中,使用的是为项目文件中的 OutputType 指定的值。 例如:

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

从 .NET SDK 的 5.0.100 版本开始,当 OutputType 设置为 Exe 时,对于面向任何框架版本(包括 .NET Framework)的 WPF 和 Windows Forms 应用,它将自动更改为 WinExe

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

如果未在项目文件中指定 OutputType,则它会默认为 Library,并且该值不会更改。

更改原因

假定在执行 WPF 或 Windows 窗体应用时,大多数用户不希望打开控制台窗口。 此外,这些应用程序类型现在使用 .NET SDK 而不是 Windows 桌面 SDK,因此会设置正确的默认值。 而且,添加了对面向 iOS 和 Android 的支持时,如果多个平台使用相同的输出类型,则在这些平台之间进行多目标操作将更轻松。

引入的版本

.NET SDK 5.0.100

你无需执行任何操作。 但是,如果你想还原为旧行为,请在项目文件中将 DisableWinExeOutputInference 属性设置为 true

<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

受影响的 API

无法通过 API 分析检测到。