我试图写一个消息到输出窗口调试的目的。我搜索了一个类似Java的system.out.println("")的函数。我尝试了调试。写,控制台。Write和Trace.Write。它不会给出错误,但也不会打印任何东西。
“定义调试常量”和“定义跟踪常量”选项被选中。
菜单工具→选项→调试→“将所有输出窗口文本重定向到立即窗口”选项未选中。
配置:活动(调试)
注意:如果相关的话,我用向导创建了一个“Windows窗体应用程序”项目。我不知道去哪里找。
我试图写一个消息到输出窗口调试的目的。我搜索了一个类似Java的system.out.println("")的函数。我尝试了调试。写,控制台。Write和Trace.Write。它不会给出错误,但也不会打印任何东西。
“定义调试常量”和“定义跟踪常量”选项被选中。
菜单工具→选项→调试→“将所有输出窗口文本重定向到立即窗口”选项未选中。
配置:活动(调试)
注意:如果相关的话,我用向导创建了一个“Windows窗体应用程序”项目。我不知道去哪里找。
当前回答
调用
System.Diagnostics.Debug.WriteLine("message");
在使用. net Core (V 1.0或1.1)时失败。
我们应该创建并使用来自Microsoft.Extensions的日志记录器。日志,但是该日志只出现在dotnet.exe弹出控制台窗口中,而不是在Visual Studio的输出窗口中。
其他回答
这不是对原来问题的回答。但是,由于我在搜索交互式转储对象数据的方法时发现了这个问题,我认为其他人可能会从提到这个非常有用的替代方法中受益。
我最终使用命令窗口并进入调试。打印命令,如下所示。这打印了一个内存对象的格式,可以复制为文本,这是我真正需要的。
> Debug.Print <item>
id: 1
idt: null
igad: 99
igbd: 99
gl_desc: "New #20"
te_num: "1-001-001-020"
以下是我在Visual Studio 2015中的工作:
OutputDebugStringW(L"Write this to Output window in VS14.");
在这里阅读OutputDebugStringW的文档。
注意,此方法仅在调试代码时有效(调试模式)。
对于任何使用NCrunch的人来说,调试输出被重定向到NCrunch的“跟踪输出”窗口。
出于调试目的,System.Diagnostics.Debug.WriteLine()命令不会被编译到代码的发布版本中,除非您有调试侦听器。当在调试模式下运行时,它会写入所有跟踪侦听器,其中包括VS输出窗口。
对于控制台应用程序。Console.WriteLine()可以工作,但输出仍然会在二进制文件的发布版本中生成。
调试测试时,调试输出也应该出现在正常输出窗口中;然而,控制台。Writeline输出没有(但可以在测试输出窗口中找到)。
这将写入调试输出窗口:
using System.Diagnostics;
Debug.WriteLine("Send to debug output.");