Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 连接到VS中的进程时,Console.WriteLine不工作_Visual Studio - Fatal编程技术网

Visual studio 连接到VS中的进程时,Console.WriteLine不工作

Visual studio 连接到VS中的进程时,Console.WriteLine不工作,visual-studio,Visual Studio,如果我在C#.NET(winforms)中有一个代码,其中包含Console.WriteLine(“TEST”)和visual studio附加到进程,而不是在输出窗口中编写“测试”。 (已正确附上申请表) 如果我用visualstudio正常启动我的程序,它就会工作 为什么它在第一种情况下不起作用?Visual Studio在调试windows程序时()将启动它们,并将stdout和stderr重定向到命名管道。命名管道的另一端归VS调试器所有,在这些管道上读取的任何内容(即应用程序写入std

如果我在C#.NET(winforms)中有一个代码,其中包含
Console.WriteLine(“TEST”)和visual studio附加到进程,而不是在输出窗口中编写“测试”。
(已正确附上申请表)

如果我用visualstudio正常启动我的程序,它就会工作


为什么它在第一种情况下不起作用?

Visual Studio在调试windows程序时()将启动它们,并将
stdout
stderr
重定向到命名管道。命名管道的另一端归VS调试器所有,在这些管道上读取的任何内容(即应用程序写入stdout或stderr的任何内容)都将显示在调试输出窗口中(该窗口决不是已调试的应用程序输出窗口)

当附加到应用程序时,无法再执行此重定向(显然,因为应用程序已启动,
stderr
stdin
无法在事后重定向)。因此,
Console.Write
不再自动神奇地重定向到调试输出

请注意,对于控制台程序()

但是有一个专门的API来编写调试信息:。这将使用函数将文本发送到附加的调试器(如果有)。无论何时或如何连接调试器,这都是有效的,因为它不依赖于stdout/stderr重定向技巧


控制台替换为
调试。在调试windows程序时,Visual Studio()将使用重定向到命名管道的
标准输出和
标准输出启动它们。命名管道的另一端归VS调试器所有,在这些管道上读取的任何内容(即应用程序写入stdout或stderr的任何内容)都将显示在调试输出窗口中(该窗口决不是已调试的应用程序输出窗口)

当附加到应用程序时,无法再执行此重定向(显然,因为应用程序已启动,
stderr
stdin
无法在事后重定向)。因此,
Console.Write
不再自动神奇地重定向到调试输出

请注意,对于控制台程序()

但是有一个专门的API来编写调试信息:。这将使用函数将文本发送到附加的调试器(如果有)。无论何时或如何连接调试器,这都是有效的,因为它不依赖于stdout/stderr重定向技巧


控制台替换为
调试。写入
控制台是什么?JS浏览器控制台?Net控制台?一些定制课程?你是想说发送到STDOUT的输出在运行独立应用程序时被VS捕获,但在测试框架的上下文中运行时不会被捕获吗?您使用的是什么测试框架?XUnit、MSUnit、NUnit?编辑了我的问题。这不是“正常”功能,Winforms应用程序没有控制台。它只有在VisualStudio托管过程中才能工作。这是一个选项,配置为“项目>属性>调试”选项卡。当您附加到进程而不是按F5键时,该键将丢失。并将在未来消失,该产品已于2017年停产。改用调试类。
控制台
是什么?JS浏览器控制台?Net控制台?一些定制课程?你是想说发送到STDOUT的输出在运行独立应用程序时被VS捕获,但在测试框架的上下文中运行时不会被捕获吗?您使用的是什么测试框架?XUnit、MSUnit、NUnit?编辑了我的问题。这不是“正常”功能,Winforms应用程序没有控制台。它只有在VisualStudio托管过程中才能工作。这是一个选项,配置为“项目>属性>调试”选项卡。当您附加到进程而不是按F5键时,该键将丢失。并将在未来消失,该产品已于2017年停产。改用Debug类。谢谢你。使用Console=System.Diagnostics.Debug;谢谢雷姆斯。使用Console=System.Diagnostics.Debug;