为什么Console.Writeline,Console.Write在Visual Studio Express中不起作用?


169

我只是打开一个控制台应用程序,然后输入

Console.WriteLine("Test");

但是输出窗口不会显示此信息。我用Ctrl + W,O转到输出窗口

但是,当我运行程序时,什么都没有显示出来,是我疯了还是Visual Studio 2010 Express不支持此功能?


3
如前所述,Leif它在您看到之前就消失了。使用Console.ReadKey()
Xaqron,2010年

另请参见stackoverflow.com/a/1583569/503688,以获取将控制台输出重定向到调试输出窗口的机制。
yoyo

Answers:


301

Console.WriteLine将您的输出写入应用程序打开的控制台窗口(在打开命令提示符时,将黑色窗口显示为白色文本。)请尝试System.Diagnostics.Debug.WriteLine


26
调试输出出现在“输出”窗口中(“调试=> Windows =>输出”)。我的默认情况下未打开。
2013年

1
如果控制台窗口中没有输出,请在“调试”选项卡的“开始选项”下检查应用程序的属性,以确保没有任何命令行参数从控制台重定向输出。
乍得米勒

并使用诸如technet.microsoft.com/zh-cn/sysinternals/debugview.aspx DebugView(dbgview)之类的工具来接收调试消息,因为它们不会出现在cmd控制台上。
罗杰·迪普

19

Solution Explorer窗口中转到您自己的项目中的属性,然后选择应用程序类型,Output Type 然后将其值更改为Console Application。除了您的表单,这将使控制台屏幕。如果关闭控制台屏幕,您的表单也将关闭。

祝好运。


让我开心!我现在可以遍历我的LINQ查询并写入控制台,这是将正确的数据放入磁盘的快速廉价方法。
JustJohn


15

没有提供满意的答案。

System.Diagnostics.Debug.WriteLine() 会将消息写入Output:debug窗口,但是在阳光下,每个进程都会不断将大量废话丢到该窗口中,就像在大海捞针中找到您的消息一样。

Console.WriteLine()不会写入Visual Studio中的任何窗口。我猜它只会在您的应用程序首先创建一个控制台的情况下才写入应用程序控制台,即它是一个Console应用程序。

为什么该工具使Web应用程序服务器端代码.cs代码将一些调试消息写入到被废话淹没的窗口中的简单任务几乎变得不可能找到您的信息?



5

这很有可能是因为您在名称空间中使用了Console。例如这样:

namespace XYZApplication.Console
{
    class Program
    {
        static void Main(string[] args)
       {
            //Some code;             
       }
    }
}

尝试从名称空间中删除它,使用完整的名称空间,即

   System.Console.Writeline("abc");

1
我的应用程序中没有其他控制台,但是添加了System.帮助。谢谢。
kolenda

4

输出窗口不是控制台。尝试中的方法System.Diagnostics.Debug


4

在Winforms应用程序中,两种方法:

System.Diagnostics.Debug.WriteLine("my string")

System.Console.WriteLine("my string")

写入输出窗口。

在AspNetCore应用程序中,仅System.Diagnostics.Debug.WriteLine("my string")写入输出窗口。



2

在solution-explorer中的项目上单击鼠标右键,然后单击“清理”。

现在运行 F5

确保代码如下:

Console.WriteLine("TEST");
Console.ReadLine();

1

运行单元测试时遇到了类似的问题。Console.WriteLine()没有将任何内容写入VS输出窗口。

使用System.Diagnostics.Debug.WriteLine()解决了问题。


1

如果使用Ctrl-F5(无需调试即可启动),它将使控制台窗口保持打开状态,并显示消息“按任意键继续”。这是使控制台窗口保持关闭状态的最简单方法,因此您可以看到控制台输出。


1

转到调试菜单,然后选择选项,然后取消选中“将所有输出窗口文本重定向到立即窗口”


0

Console.Writeline() 显示在调试输出中(调试=> Windows =>输出)。


7
否,System.Diagnostics.Debug.WriteLine写入Debug => Windows =>输出,但不会写入Console.WriteLine
Vitalii Korsakov 2013年

1
提出问题的人正在使用Console应用程序,其中Console.WriteLine()当然会写入Console,这是黑色的应用程序窗口,看起来像DOS窗口。当Console.WriteLine()不是控制台应用程序时,它只会写入“调试输出”窗口。
Peter Huber

“ Console.WriteLine()仅在不是控制台应用程序时才写入调试输出窗口。” 为什么?
sydd '18

0

如果您正在开发命令行应用程序,则还可以Console.ReadLine()在代码末尾使用,以等待Enter键,然后关闭控制台窗口,以便可以读取输出。



0

我发现的解决方法:

Ctrl + Alt + I或导航到“调试选项卡” --->“ Windows” --->“立即”。

在您的代码中写:

Trace.WriteLine("This is one of the workaround");

0

Visual Studio 2017的Output窗口有一个名为Show from from的菜单,在我的情况下 ,选择ASP.NET Core Web Server来查看打印输出,我遇到了这个问题,因为我将其设置为Build,我在运行时没有看到打印出来的行。


0

有两个可能的问题是:

  • 首先,using System在编写使用“系统类”的代码之前,您没有使用过应该使用which,因为Console.WriteLine()
  • 其次,您尚未编写控制台显示“测试”后发生的代码

可能的解决方案是:

using System;

namespace Test
{
    public static Main()
    {
        //Print to the console
        Console.WriteLine("Test");

        //Allow user to read output
        Console.ReadKey();
    }
}

在用户Console.Write("Press any key to exit...");之前的代码行上进行编码也很重要,Console.ReadKey();以使用户知道程序正在结束,他/她必须按任意键退出。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.