Когда я выполняю консольное приложение на Java с Eclipse, я вижу, что вывод помещается в текстовое поле в самой среде IDE, вместо того, чтобы выскакивать консоль, как в Visual Studio. Это удобно, поскольку даже после выхода из программы я все еще могу эффективно использовать текст, который был в ней написан, поскольку он не стирается, пока я не запустил его снова. Возможно ли добиться чего-то подобного с помощью Visual Studio? Я знаю, что вместо того, чтобы делать
System.Console.WriteLine(str);
я могу сделать
System.Diagnostics.Debug.WriteLine(str);
но это не совсем то же самое, поскольку вы получаете много "мусора" в окне вывода, как и все загруженные символы и тому подобное.
Еще лучше, можно ли все сделать в самой среде IDE, когда вы запускаете приложение, вместо того, чтобы запускать консоль?
c#
visual-studio
console
пожрал элизиум
источник
источник
Ответы:
В меню «Инструменты» -> «Параметры Visual Studio» -> «Отладка» -> установите флажок «Перенаправить весь текст окна вывода в непосредственное окно».
источник
В диалоговом окне параметров Visual Studio -> Отладка -> установите флажок «Перенаправить весь текст окна вывода в непосредственное окно». Затем перейдите в настройки вашего проекта и измените тип с «Консольное приложение» на «Приложение для Windows». В этот момент Visual Studio больше не открывает окно консоли, а вывод перенаправляется в окно вывода в Visual Studio. Однако вы не можете делать ничего «творческого», например, запрашивать ввод ключа или текста или очищать консоль - вы получите исключения во время выполнения.
источник
Console.ReadKey()
это просто смешно!Output type
свое приложение из приложения Windows в консоль, окно консоли не было видно, когда я запускаю свое приложение. Я могу отлаживать приложение, иMain
точка входа тоже попадает. Я также отменил настройку параметра, упомянутого в этом сообщении, но безрезультатно. Я использую версию сообщества VS 2017. Я потерял окно консоли (рыдает).использование
System.Diagnostics.Trace
В зависимости от того, какие слушатели вы подключаете, вывод трассировки может идти в окно отладки, консоль, файл, базу данных или все сразу. Возможности буквально безграничны, поскольку реализовать собственный TraceListener чрезвычайно просто.
источник
Пришло время проверить последнюю версию Visual Studio, ребята. Наиболее рекомендуемое решение, которое раньше не работало для некоторых из вас, может сработать сейчас.
В Visual Studio 2017 ( версия выпуска 15.4.2 и выше)
Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window
у меня сработало.Несколько примечаний: 1. Чтобы увидеть непосредственное окно, убедитесь, что вы находитесь в режиме отладки . 2. Теперь в вашем распоряжении должны быть 3 других инструмента отладки, а именно стек вызовов, точки останова и окно команд, как показано ниже:
С наилучшими пожеланиями!
источник
Вы можете создать приложение-оболочку, которое вы запускаете, вместо того, чтобы напрямую запускать свое настоящее приложение. Приложение-оболочка может прослушивать stdout и перенаправлять все на Trace. Затем измените параметры запуска, чтобы запустить оболочку и передать путь к реальному приложению для запуска.
Вы также можете настроить автоматическое присоединение отладчика к новому процессу, если отладчик прикреплен к оболочке.
источник
Я знаю, что это просто еще один ответ, но я подумал, что напишу что-нибудь для новых веб-разработчиков, которые могут запутаться в части «Переход на приложение Windows», потому что я думаю, что по умолчанию приложение MVC в Visual Studio 2013 по умолчанию используется выходной тип библиотеки классов.
Мое веб-приложение по умолчанию настроено как выходной тип «Библиотеки классов». Вам не нужно это менять. Все, что мне нужно было сделать, это последовать советам: «Инструменты»> «Параметры»> «Отладка»> «Перенаправить весь текст окна вывода в окно немедленного выполнения». Затем я использовал
System.Diagnostics.Trace
предложение Джоэла Кохорна выше.источник
Простое решение, которое работает для меня, для работы с возможностью консоли (ReadKey, String with Format и arg и т. Д.), А также для просмотра и сохранения вывода:
Я пишу TextWriter, который пишет в
Console
и вTrace
и заменяетConsole.Out
им.если вы используете Dialog -> Debugging -> Отметьте «Перенаправить весь текст окна вывода в Immediate Window», вы получите его в Immediate Window и довольно чисто.
мой код: в начале моего кода:
и класс:
Примечание: я переопределяю только то, что мне нужно, поэтому, если вы пишете другие типы, вам следует переопределить больше
источник
относительно
System.Diagnostics.Debug
создания большого количества «мусора» в окне вывода: вы можете отключить это, щелкнув правой кнопкой мыши в окне вывода. Например, есть элемент «Сообщения о загрузке модуля», который вы хотите отключить, и элемент «Вывод программы», который вы хотите сохранить.источник
У вас есть три возможности сделать это, но это нетривиально. Основная идея всех IDE заключается в том, что все они являются родителями дочерних (отладочных) процессов. В этом случае можно работать со стандартным вводом, выводом и обработчиком ошибок. Таким образом, IDE запускают дочерние приложения и перенаправляют их во внутреннее окно вывода. Я знаю еще об одной возможности, но она появится в будущем
источник
Если вам нужен вывод из Console.WriteLine, а перенаправить весь текст окна вывода в немедленное окно не работает, и вам нужно знать вывод тестов из интегрированного обозревателя тестов, используя NUnit.Framework, наша проблема уже решена в VS 2017 :
Пример взят из C # In Depth от Джона Скита: это дает следующий результат в Text Explorer:
Когда мы щелкаем синий вывод в разделе Истекшее время справа, и получается следующее:
Стандартный вывод - это желаемый результат, создаваемый Console.WriteLine.
Он работает для консоли и для приложений Windows Form в VS 2017, но только для вывода, созданного для обозревателя тестов при отладке или запуске; в любом случае, это моя основная потребность в выводе Console.WriteLine.
источник
Вместо этого вы можете собрать результат в результате теста.
Вы не можете предоставить ввод, но вы можете легко предоставить несколько тестов с разными аргументами командной строки, каждый из которых будет собирать выходные данные.
Если вашей целью является отладка, это простой способ предложить повторяемый сценарий отладки.
источник
Шаг 1. Щелкните правой кнопкой мыши имя проекта в обозревателе решений, затем выберите тип вывода как оконное приложение.
Шаг 2: Отладка -> Параметры .. -> Отладка (развернуть) -> Общие -> Перенаправить весь текст окна вывода в окно немедленного доступа
источник