在Visual Studio中输出控制台应用程序而不是控制台

dev*_*ium 116 c# console visual-studio

使用Eclipse在Java中执行控制台应用程序时,我看到输出放在IDE本身的文本框中,而不是像Visual Studio中那样弹出控制台.这很方便,因为即使在程序退出之后,我仍然可以很好地利用其中所写的文本,因为它在我再次运行之前不会被删除.是否可以使用Visual Studio实现类似的功能?我知道这不是做

System.Console.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

我可以

System.Diagnostics.Debug.WriteLine(str);
Run Code Online (Sandbox Code Playgroud)

但它不是一回事,因为你在输出窗口中得到了很多"垃圾",就像所有加载的符号一样.

更好的是,当您运行应用程序而不是让控制台运行时,是否可以在IDE中完成所有操作?

小智 45

在工具 - > Visual Studio选项对话框 - >调试 - >检查"将所有输出窗口文本重定向到立即窗口".

  • 我已经选中了这个复选框,但我仍然在"输出"窗口(调试,测试,构建,...)或"立即窗口"中没有控制器弹出窗口. (64认同)
  • @TooTone问题清楚地说明了一个"控制台应用程序"并将其改为其他东西只是为了调试目的,我甚至不能**Console.ReadKey()**只是直截了当的荒谬! (10认同)
  • 对我来说根本不起作用,与以前完全相同 (6认同)
  • @EvenLisle您需要将应用程序类型更改为Windows应用程序,如[stolsvik的答案](http://stackoverflow.com/a/9615237/834521).无论如何,这个答案中提到的选项默认为我. (6认同)
  • “将所有输出窗口文本重定向到立即窗口”究竟是什么意思?如果需要,请使用各种上下文。我对“即时窗口”感到困惑。 (3认同)
  • 仅适用于 Debug.WriteLine(),不适用于 Console.WriteLine() :( (3认同)

sto*_*vik 38

Visual Studio选项对话框 - >调试 - >检查"将所有输出窗口文本重定向到立即窗口".然后转到项目设置并将类型从"控制台应用程序"更改为"Windows应用程序".此时,Visual Studio不再打开控制台窗口,输出将重定向到Visual Studio中的"输出"窗口.但是,您无法执行任何"创造性"操作,例如请求键或文本输入,或清除控制台 - 您将获得运行时异常.

  • 我发现这特别笨拙.我想知道,VS背后的理由是什么?它应该是所有现代IDE的能力,IDE中的面板本身就像输入和输出的控制台一样.(划痕头) (23认同)
  • 问题清楚地说明了一个_"控制台应用程序"_并将其改为其他东西只是为了调试目的,我甚至不能把`Console.ReadKey()`直接搞笑! (11认同)
  • 对于它的价值,在VS 15.8.7中,我可以将输出重定向到控制台应用程序的唯一方法是将其更改为Windows应用程序,然后取消选中“重定向”框。如果我选中此框,则不会显示输出。 (2认同)

Joe*_*orn 6

使用 System.Diagnostics.Trace

根据您所附加的侦听器,跟踪输出可以转到调试窗口,控制台,文件,数据库或全部转到。可能性实际上是无止境的,因为实现自己的TraceListener非常简单。

  • 我转到我的调试选项对话框并选择“将所有输出窗口文本重定向到立即窗口”以使跟踪输出转到立即窗口,这样它就不会与调试废话混淆。 (2认同)