在Visual Studio 2010中查看控制台的输出?

时间:2011-03-14 16:08:17

标签: c# visual-studio-2010 visual-studio

我正在编写一个带有一些输出(Console.WriteLine("...");)的简单C#程序。问题是,每次运行它时,我都无法在输出窗口中看到程序的输出。

已经检查了“程序输出”标签,我已将所有输出重定向到中间窗口,但无济于事。

如何启用查看程序的输出?

我认为问题不在于我的代码。我尝试运行一个简单的程序,只输出一个字符串和readline“ala hello world”,我仍然无法看到任何输出。问题是我在错误的位置寻找输出或者Visual Studio是否正在行动。

debug.write方法也不起作用。

使用debug.Write,一切正常,但之前没有。在我重新开始之前,或者我需要休息一下,或者我需要休息,无论哪种方式,现在一切都很好。感谢所有有用的评论=)

10 个答案:

答案 0 :(得分:195)

您可以使用System.Diagnostics.Debug.WriteSystem.Runtime.InteropServices方法将消息写入输出窗口。

答案 1 :(得分:50)

以下是一些要检查的事项:

  1. 对于console.Write/WriteLine,您的应用必须是控制台应用。 (在解决方案资源管理器中右键单击项目,选择属性,然后在“应用程序”选项卡中查看“输出类型”组合 - 应为“控制台应用程序“(请注意,如果您确实需要Windows应用程序或类库,请不要将其更改为控制台应用程序以获取Console.WriteLine)。

  2. 您可以使用System.Diagnostics.Debug.WriteLine写入输出窗口(在VS中显示输出窗口,到查看 | 输出)注意这些写入只会发生在定义了DEBUG条件的构建中(默认情况下,调试版本定义此版本,而版本构建不会)

  3. 如果您希望能够在非调试版本中写入可配置的“侦听器”,则可以使用System.Diagnostics.Trace.Writeline。 (默认情况下,这会写入Visual Studio中的“输出窗口”,就像Debug.Writeline

答案 2 :(得分:34)

在程序结束时添加Console.Read();。它会阻止应用程序关闭,你可以通过这种方式看到它的输出。

这是一个我刚刚挖出的控制台应用程序,它在处理之后但在退出之前停止:

class Program
{
    static void Main(string[] args)
    {
        DummyObjectList dol = new DummyObjectList(2);
        dol.Add(new DummyObject("test1", (Decimal)25.36));
        dol.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolxs = new XmlSerializer(typeof(DummyObjectList));
        dolxs.Serialize(Console.Out, dol);

        Console.WriteLine(string.Empty);
        Console.WriteLine(string.Empty);

        List<DummyObject> dolist = new List<DummyObject>(2);
        dolist.Add(new DummyObject("test1", (Decimal)25.36));
        dolist.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolistxs = new XmlSerializer(typeof(List<DummyObject>));
        dolistxs.Serialize(Console.Out, dolist);
        Console.Read(); //  <--- Right here
    }
}

或者,您可以在最后一行添加断点。

答案 3 :(得分:21)

Ctrl + F5 运行程序而不是 F5

答案 4 :(得分:8)

System.Diagnostics.Debug.WriteLine()可以使用,但您必须在正确的位置查找输出。在Visual Studio 2010中,在菜单栏上单击调试 - &gt; Windows - &gt; 输出。现在,在错误列表旁边停靠的屏幕底部,应该有一个输出选项卡。单击它并仔细检查它是否在下拉列表中显示调试流的输出。

P.S。:我认为输出窗口显示全新安装,但我不记得了。如果没有,或者您意外关闭它,请按照这些说明操作。

答案 5 :(得分:0)

要保持打开您的Windows控制台并且不使用其他输出方法而不是标准输出流cout,请转到您的项目名称 - &gt;属性 - &gt;链接器 - &gt;系统

在那里,选择SubSytem选项卡并标记Console(/ SUBSYSTEM:CONSOLE)。完成此操作后,无论何时编辑,都要使用Ctrl + F5(无需调试启动),控制台将保持打开状态。 :)

答案 6 :(得分:0)

由于某种原因,我经常遇到这种情况,我无法理解为什么没有提到这个解决方案:

点击查看输出(或只需按住 Ctrl 并点击W&gt; O)

然后,控制台输出会显示在错误列表本地监视窗口的位置。

注意:我使用的是Visual Studio 2015。

答案 7 :(得分:0)

Visual Studio本身涵盖了控制台窗口,请尝试最小化它们相互绘制的Visual Studio窗口。

答案 8 :(得分:-1)

在Program.cs中,在:

之间
static int Main(string[] agrs)
{

以及其他代码,添加:

#if DEBUG
    int rtn = Main2(args);
    Console.WriteLine("return " + rtn);
    Console.WriteLine("ENTER to continue.");
    Console.Read();
    return rtn;
}

static int Main2(string[] args)
{
#endif

答案 9 :(得分:-4)

你可以创建2个小方法,一个可以在程序开始时调用,另一个可以在结束时调用。您还可以使用Console.Read(),以便程序在最后一次写入行之后不会关闭。

通过这种方式,您可以确定何时执行您的功能以及程序何时存在。

startProgram()
{
     Console.WriteLine("-------Program starts--------");
     Console.Read();
}


endProgram()
{
    Console.WriteLine("-------Program Ends--------");
    Console.Read();
}