Visual Studio 16.8 刚刚禁用了 WPF Core 3.1 应用程序中的控制台?

Visual Studio 16.8 just disabled having a console in a WPF Core 3.1 app?

使用 Visual Studio,前段时间我用 WPF 应用程序创建了一个 Core 3.1。然后,在项目属性中,我将 'Output type' 更改为 'Console Application' 这样我就有了一个漂亮的控制台来打印东西。这已经运行了很长一段时间。但是我刚刚将 VS 从 16.7.6 更新到 16.8.1,现在应用程序不会打开控制台 window,当我打开项目属性时 'Output type' 显示 'Windows Application',并且当我再次将其更改为 'Console Application' 时,下次我打开项目属性时它再次显示 'Windows Application'(即使 csproj 文件中的 OutputType 为 'Exe',这意味着它是一个控制台应用程序)。

我是不是做错了什么或者 Microsoft 突然决定禁用 WPF Core (3.1) 应用程序的控制台 windows,即使它们至少允许您将输出类型更改为 'console application' project properties 是开放的,他们在没有告诉任何人的情况下这样做(至少,我还没有找到这方面的声明)?

这个问题应该只适用于 .NET 5,但也许 .NET Core 3.1 也有新的 Visual Studio 版本。

就我而言,我将 .NET Core 3.1 项目转换为 .NET 5。我不得不将 'Output type' 更改为 'Windows Application'。然后编辑csproj文件,在<OutputType>WinExe</OutputType>后添加如下一行:

<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

this MS doc page

在您的 .NET Core 3.1 项目中尝试。

我在更新项目时遇到的另一个原因是解决方案文件。格式已更改,如果您的格式较旧,则不会 运行 项目。

要修复它,只需创建一个新项目并获取它为您提供的解决方案文件并覆盖您的。更改名称和路径以指向正确的 .proj 文件,一切顺利。