无控制台应用程序中的Console.WriteLine可以在Framework下工作,但不能在Core下工作



在Visual Studio 2017中,我们看到删除了Visual Studio宿主进程。这可能伴随着Console.WriteLine不再适用于在没有附加控制台的情况下运行的应用程序(例如在WPF中(的缺点。

至少这是我的理解。但令我惊讶的是,这似乎并不完全正确。

在Visual Studio 2019中创建.NET Framework 4.8 WPF项目时,似乎可以很好地(出乎意料地(使用Console.WriteLine,结果显示在Visual Studio输出窗口中。

同时,运行.NET Core的相同项目似乎不会将任何内容打印到输出控制台(正如我所期望的那样,我可能会添加(。在这两种情况下,项目都是在输出类型设置为Windows应用程序的情况下运行的,所以据我所知,没有附加任何控制台。

这是一个相当特殊的问题,因为我希望Console.WriteLine在这两种情况下都能而不是。但是,似乎还没有找到关于为什么这适用于.NET Framework Wpf应用程序的信息,以及为什么它可以在Framework下工作而不能在Core下工作的信息。

我自己通常使用Debug.WriteLine和Trace.WriteLine,但我想知道为什么Console.WriteLine(即使在Visual Studio 2019中(仍然有效,尽管它不应该。

您可以使用System.Diagnostics下的Debug.WriteLine((在Output窗口中添加一些单词。控制台中有一些解释。在VS 2017中,WriteLine不输出到输出窗口。

与.net旧版相比,net核心框架有很多变化。代码的移植不仅仅是剪切和粘贴,当你偏离了最常用的路径时,你可以发现行为上的细微差异。

console.writeline的标准输出在逻辑上是控制台窗口。考虑到wpf应用程序没有控制台窗口,这可以说是你在.net旧版中看到的行为;错误";。

如果你特别想使用console.writeline而不是debug.writeline,那么你可以给它一个控制台窗口来输出到.

改变你的项目"输出类型";到项目设置中的控制台。右键单击您的项目

属性>"应用程序"选项卡>

将下拉菜单更改为";输出类型";到控制台。当你点击f5时,你会得到一个控制台窗口和主窗口。

相关内容

最新更新