Console.WriteLine在VS 2017中无法输出到输出窗口

24
简而言之:在 VS 2015 中,Console.WriteLine 运行正常,但在 VS 2017 中不再工作。
详细来说:我有一些使用 Console.Write 的 VB 代码,在 VS 2015 中以 Release 配置启动(与 Debug 相反)并使用 Start Debugging 启动时,可以将输出正确地输出到 Output 窗口。今天我升级到 VS 2017(社区版),但是在与 VS 2015 中相同的条件下,Console.Write 不再起作用了。
也许我在过去的 VS 2015 中进行了某些配置,但我不记得了。
是否有人能帮助我如何使 Console.Write 在相同的条件下(Release 配置使用 Start Debugging 启动)输出到 Output 窗口。
注:Debug.Writeline 在 Debug 配置下运行正常(输出到 Output 窗口)。当您处于 Release 配置中时,即使使用 Start Debugging 启动,Debug.Writeline 也不会输出(到 Output 窗口)。需要(因此问题)是在 Release 配置下使用 Start Debugging 的情况下。

2
可能是在Visual Studio的输出窗口中写入内容?的重复问题。 - Imran Saeed
那篇文章更侧重于Debug.Writeline,当您处于Debug配置时(输出到Output Window),它可以正常工作。但是当您处于发布配置时,即使您使用Start Debugging启动,Debug.Writeline也不会输出(到Output Window)。 - MarcioAB
刚刚发现 VS 2017(社区版)没有像 VS 2015 中的“托管进程”。在 VS 2015 中,“托管进程”可以在项目属性的调试面板中启用。在 VS 2017 中没有这样的启用程序。因此,我认为我的旧代码只能在 VS 2015 中运行... :( - MarcioAB
还发现 Trace (System.Diagnostics) 在 Release 配置中输出到 Output 窗口。 - MarcioAB
1个回答

22

VS 2017 (社区版)中没有像VS 2015中那样的"托管进程"。在VS 2015中,可以在项目属性的调试面板中启用"托管进程"。有了"托管进程",可以使用Console.WriteLine()在输出窗口中输出(当使用"启动调试"来启动一个Release配置时)。在VS 2017中没有这样的启用程序,因此Console.WriteLine()不再将输出发送到输出窗口。

发现(System.Diagnostics.)Trace.WriteLine(Format(...))在Release配置中输出到输出窗口并可以替换(System.)Console.WriteLine。


1
自从这个问题已经解决,请将其标记为答案,以便帮助遇到相同问题的其他成员,感谢您的分享。 - Jack Zhai
@MarcioAB - 你有微软文档的链接可以展示这个吗?这在我最近更新之前一直很好用。 - Kitson88
2
无法找到链接,但它们不是微软文档。在VS2015中工作正常,在VS2017中不再工作?(顺便说一下,这就是这里的上下文)。 - MarcioAB
6
不,它不应该被关闭,用"Trace."代替"Console."并不是一个好的解决方案。请记住,新的标准是所有东西都应该输出到控制台/标准输出(stdout)。我不明白为什么VS2017不能支持这一点。 - mattias
也许这可以帮助 - https://developercommunity.visualstudio.com/content/problem/46776/c-consolewriteline-no-longer-outs-to-vs-output-win.html - Mauricio Gracia Gutierrez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接