写入Visual Studio的输出窗口?

我试图写一个消息到输出窗口进行debugging。 我search了一个像Java的system.out.println("")这样的函数。 我试过Debug.WriteConsole.WriteTrace.Write 。 它不会给出错误,但它也不会打印任何内容。

检查“定义DEBUG常量”和“定义TRACE常量”选项。

菜单工具选项debugging“将所有输出窗口文本redirect到立即窗口”选项未被选中。

configuration:活动(debugging)

注意:如果相关,我使用向导创build了一个项目为“Windows窗体应用程序”。 我不知道在哪里看。

添加System.Diagnostics命名空间,然后可以使用Debug.WriteLine()快速将消息打印到IDE的输出窗口。 有关更多详情,请参阅以下内容:

  • 如何在Visual C#中跟踪和debugging
  • 讨论使用debugging和跟踪类,包括exception处理

这将写入debugging输出窗口:

 using System.Diagnostics; Debug.WriteLine("Send to debug output."); 

使用:

 System.Diagnostics.Debug.WriteLine("your message here"); 
  Debug.WriteLine 

是你在找什么。

如果没有,请尝试这样做:

菜单工具选项debugging →取消选中发送输出到立即

对我来说,只有Trace命名空间,而不是debugging的工作:

 System.Diagnostics.Trace.WriteLine("message"); 

我正在Visual Studio 2010下的C#项目中工作。

你可能正在寻找

 MessageBox.Show() 

要么

 Debug.Writeline() 

电话

 System.Diagnostics.Debug.WriteLine("message"); 

使用.NET Core (V 1.0或1.1)时失败。

我们应该从Microsoft.Extensions.Logging创build和使用一个logging器,但该logging只出现在dotnet.exepopup控制台窗口中,而不是在Visual Studio的“输出”窗口中。

这需要一个第三方框架,即Serilog ,但我仍然发现它是一个非常顺利的经验,获得输出到某个地方,我可以看到它。

你首先需要安装Serilog的跟踪接收器 。 一旦安装,你需要像这样设置logging器:

 Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Trace() .CreateLogger(); 

(您可以设置不同的最低级别或将其设置为configuration值或任何正常的Serilogfunction,也可以将Tracelogging器设置为特定级别来覆盖configuration,或者您想要这样做。

然后,您只需正常logging消息,并在“输出”窗口中显示即可:

 Logger.Information("Did stuff!"); 

这似乎不是什么大不了的事情,所以让我解释一些额外的优点。 对我来说最大的一个问题是,我可以同时login到输出窗口和控制台

 Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Trace() .WriteTo.Console(standardErrorFromLevel: LogEventLevel.Error) .CreateLogger(); 

这给了我很大的灵活性,我怎么消耗输出,而不必重复所有我的调用Console.WriteDebug.Write 。 编写代码时,我可以在Visual Studio中运行我的命令行工具,而不必担心在退出时丢失输出。 当我部署了它并且需要debugging某些东西(并且没有Visual Studio可用)时,控制台输出已经可以供我使用了。 作为计划任务运行时,也可以将相同的消息logging到文件(或任何其他types的接收器)中。

最重要的是,使用Serilog来做到这一点使得将消息转储到多个目的地非常容易,确保我可以随时访问输出,而不pipe我如何运行它。

它也需要非常less的设置和代码。

打印到Visual Studio的输出窗口:

 Debug.Writeline(); 

以下在Visual Studio 2015为我工作:

 OutputDebugStringW(L"Write this to Output window in VS14."); 

在这里阅读OutputDebugStringW的文档。

在这里输入图像说明 请注意,此方法只适用于您正在debugging您的代码( debug mode

这不是对原始问题的回答。 但是,由于我在find一个交互式转储对象数据的方法时发现了这个问题,我想其他人可能会从提到这个非常有用的select中受益。

我最终使用了命令窗口并input了Debug.Print命令,如下所示。 这将打印一个内存对象的格式,可以复制为文本,这是我真正需要的。

 > Debug.Print <item> id: 1 idt: null igad: 99 igbd: 99 gl_desc: "New #20" te_num: "1-001-001-020"