Почему Console.Writeline, Console.Write не работают в Visual Studio Express?

169

Я просто открываю консольное приложение и набираю

Console.WriteLine("Test");

Но окно вывода не показывает это. Я иду в окно вывода с Ctrl + W, O

Но когда я запускаю свою программу, ничего не происходит, я чокнутый или это не поддерживается в Visual Studio 2010 Express?

foreyez
источник
3
Как Leifсказано, он исчезает, прежде чем вы сможете увидеть это. ИспользованиеConsole.ReadKey()
Xaqron
Смотрите также stackoverflow.com/a/1583569/503688 для механизма для перенаправления вывода консоли в окно вывода отладки.
Йойо

Ответы:

301

Console.WriteLineзаписывает вывод в окно консоли, открытое вашим приложением (представьте, что черное окно с белым текстом, которое появляется при открытии командной строки.) Попробуйте System.Diagnostics.Debug.WriteLineвместо этого.

Адам Марас
источник
26
Отладочный вывод появляется в окне «Вывод» (Debug => Windows => Output). Мой не был открыт по умолчанию.
Апплус
1
Если в окне консоли нет вывода, также проверьте свойства приложения на вкладке «Отладка» «Параметры запуска», чтобы убедиться, что у вас нет аргументов командной строки, перенаправляющих вывод из консоли.
Чед Миллер
И используйте такой инструмент, как technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (dbgview), чтобы получать сообщения отладки, поскольку они не будут отображаться в консоли cmd.
Роджер Дип
19

Зайдите в свойства вашего собственного проекта в Solution Explorerокне и выберите тип приложения, найдите Output Type и измените его значение на Console Application. Это сделает экран консоли помимо вашей формы. Если вы закроете экран консоли, ваша форма будет закрыта.

Удачи.

Ibrahim
источник
Сделал мой день! Я могу просмотреть мой запрос LINQ и записать его на консоль, что является быстрым дешевым способом получения правильных данных.
JustJohn
15

Возможно, консоль очищается. Пытаться:

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

И, надеюсь, он останется там, пока вы не нажмете Enter.

Лейф Андерсен
источник
15

Нет удовлетворительных ответов.

System.Diagnostics.Debug.WriteLine() будет писать сообщения в окно Output: debug, но каждый процесс под солнцем постоянно сбрасывает столько мусора в это окно, это все равно, что найти иголку в стоге сена, чтобы найти ВАШИ сообщения.

Console.WriteLine()не пишет ни в одно окно в Visual Studio. Я предполагаю, что он будет писать в консоль приложения только в том случае, если ваше приложение сначала создает консоль, т. Е. Если это консольное приложение.

Почему инструментарий делает простую задачу, заключающуюся в том, чтобы ваш код .cs кода на стороне сервера веб-приложений записывал некоторые отладочные сообщения в окно, забитое дерьмом, что делало практически невозможным поиск вашей информации?

Пол Горбас
источник
6

Или вы можете отладить CTRL+F5это, откроет окно ConsoleWindow после последней выполненной строки, пока вы не нажмете клавишу.

Джавед Акрам
источник
8
Ну, это не совсем «отладка», это просто запуск приложения без подключения отладчика. : /
Дамиан
5

Это более чем вероятно, потому что вы использовали консоль в пространстве имен. Например, вот так:

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

Попробуйте удалить его из пространства имен или использовать вместо него полное пространство имен, т.е.

   System.Console.Writeline("abc");
nadsy
источник
1
У меня не было другой консоли в моем приложении, но добавление System.помогло. Спасибо.
Коленда
4

Окно вывода не консоль. Попробуйте методы вSystem.Diagnostics.Debug

lesscode
источник
4

В приложении Winforms оба метода:

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

и

System.Console.WriteLine("my string")

написать в окно вывода.

В приложении AspNetCore System.Diagnostics.Debug.WriteLine("my string")пишет только в окно вывода.

user6849960
источник
3

Попробуйте Ctrl + F5, он будет держать ваш экран, пока вы не нажмете любую клавишу. С уважением

Сумен Кр Маллик
источник
2

Щелкните правой кнопкой мыши проект в обозревателе решений и нажмите «очистить».

Теперь беги F5

Убедитесь, что код такой, как показано ниже:

Console.WriteLine("TEST");
Console.ReadLine();
Акаша
источник
1

Я столкнулся с аналогичной проблемой при запуске модульного теста. Console.WriteLine()ничего не записывал в окно вывода VS

Использование System.Diagnostics.Debug.WriteLine()решило проблему.

Питер Хубер
источник
1

Если вы используете Ctrl-F5 (запуск без отладки), окно консоли останется открытым с сообщением «Нажмите любую клавишу для продолжения». Это самый простой способ предотвратить закрытие окна консоли, чтобы вы могли видеть вывод консоли.

Джеффри рассчитывает
источник
1

Перейдите в меню «Отладка» и выберите «Параметры» и снимите флажок «Перенаправить весь текст окна вывода в окно немедленного действия»

user241636
источник
0

Console.Writeline() отображается в выходных данных отладки (Debug => Windows => Output).

Svl2Nuk3
источник
7
Нет, System.Diagnostics.Debug.WriteLine пишет в Debug => Windows => Вывод, но не в Console.WriteLine
Виталий Корсаков
1
Человек, задающий вопрос, использует консольное приложение, где Console.WriteLine (), конечно, пишет в консоль, которая представляет собой черное окно приложения, похожее на окно DOS. Console.WriteLine () выполняет запись только в окно вывода отладки, если оно не является консольным приложением.
Питер Хубер
«Console.WriteLine () записывает только в окно вывода отладки, когда оно не является консольным приложением». Зачем?
sydd
0

Если вы разрабатываете приложение для командной строки, вы также можете использовать Console.ReadLine()в конце своего кода ожидание нажатия клавиши «Ввод» перед закрытием окна консоли, чтобы вы могли прочитать свои выходные данные.

Абдулла Ибн Маннан
источник
0

Обходной путь, который я нашел:

Нажмите Ctrl + Alt + I или перейдите к «Отладочная вкладка» ---> «Windows» ---> «Немедленно».

В своем коде напишите:

Trace.WriteLine("This is one of the workaround");
GurdeepBhatia
источник
0

Выход окна Visual Studio 2017 имеют меню под названием Show выход из , в моем случае ASP.NET Основной веб - сервер был вариант , чтобы выбрать, чтобы увидеть напечатанное, я наткнулся на этот вопрос , так как у меня было установлено , чтобы построить так Я не видел распечатанных строк во время выполнения.

kuky54
источник
0

Есть 2 возможные проблемы:

  • Во-первых, вы не использовали то, using Systemчто должно быть до написания кода, который использует «Системный класс», так как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();чтобы пользователь знал, что программа заканчивается, он / она должен нажать любую клавишу для выхода.

Лету Нсибанде
источник