Console.WriteLine 不输出到 VS 2017 中的输出窗口

Posted

技术标签:

【中文标题】Console.WriteLine 不输出到 VS 2017 中的输出窗口【英文标题】:Console.WriteLine does not output to Output Window in VS 2017 【发布时间】:2017-08-11 23:18:30 【问题描述】:

简而言之:Console.WriteLine 在 VS 2015 中工作正常,但在 VS 2017 中不再工作。

详细说明:我有一些使用 Console.Write 的 VB 代码,在 VS 2015 中输出 ok 到输出窗口,即使配置为 Release(与 Debug 对比)启动时使用 Start Debugging(与 Start without Debugging 对比)。

今天我升级到 VS 2017(社区版),但 Console.Write 在与 VS 2015 相同的条件下不再工作。

也许我过去在 VS 2015 中做过一些配置,但我不记得了。

有人可以帮我如何在相同的条件下制作 Console.Write 输出到输出窗口(使用 Start Debugging 启动的发布配置)。

Obs:当您处于 Debug 配置时,Debug.Writeline 工作正常(输出到输出窗口)。当您处于发布配置中时,即使您使用 Start Debugging 启动,Debug.Writeline 也不会输出(到输出窗口)。需求(以及问题)是在发布配置中开始调试的上下文中。

【问题讨论】:

Writing to output window of Visual Studio?的可能重复 那篇文章更倾向于 Debug.Writeline,当您处于调试配置时,它可以正常工作(输出到输出窗口)。当您在发布配置中时,即使您使用 Start Debugging 启动,Debug.Writeline 也不会输出(到输出窗口)。 刚刚发现 VS 2017 ( Community ) 没有 VS 2015 中的“托管进程”。在 VS 2015 中,可以在项目属性的“调试”面板中启用“托管进程”。在 VS 2017 中没有这样的推动者。所以,我假设我的旧代码只能在 VS 2015 中运行...... :( 还发现 Trace (System.Diagnostics) 在发布配置中输出到输出窗口。 【参考方案1】:

VS 2017(社区)没有 VS 2015 中的“托管过程”。 在 VS 2015 中,可以在项目属性的调试面板中启用“托管进程”。 使用 Console.WriteLine() 可以将“托管进程”输出到输出窗口(当使用 Start Debugging 启动发布配置时)。 在 VS 2017 中没有这样的启动器,因此 Console.WriteLine() 不再输出到输出窗口。

发现 (System.Diagnostics.)Trace.WriteLine(Format(...)) 在 Release configs 中输出到 Output Window 并且可以替换 (System.)Console.WriteLine。

【讨论】:

既然这个问题已经解决了,请将它标记为答案,这样可以帮助其他遇到和你一样问题的小伙伴,谢谢分享。 @MarcioAB - 你有指向微软文档的链接吗?在我最近更新之前,这对我来说效果很好。 否(我无法再找到链接,但它们不是 Microsoft 文档)。在 VS2015 中工作正常而在 VS2017 中不再工作? (顺便说一句,这是这里的上下文)。 不,它不应该被关闭,代替“控制台”。通过“跟踪”。不是一个好的解决方案。请记住,新标准是一切都应该转到控制台/标准输出。我不明白为什么VS2017不能支持这个。 也许这会有所帮助 - developercommunity.visualstudio.com/content/problem/46776/…

以上是关于Console.WriteLine 不输出到 VS 2017 中的输出窗口的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Console.WriteLine();的输出问题?

如何使用VS2005输出所有环境变量

错误调式

WPF 应用程序没有输出到控制台?

C#里面Console.Write与Console.WriteLine有啥区别????

C#中Console.WriteLine与Response.Write有啥区别