Почему при запуске программы в visual studio

Когда я выполняю консольное приложение на Java с Eclipse, я вижу вывод в текстовое поле в самой IDE, вместо того, чтобы консоль выскочила, как в Visual Studio. Это очень удобно, так как даже после выхода из программы я все еще могу эффективно использовать текст, который был в ней написан, так как он не стирается, пока я не запущу его снова. Можно ли добиться чего-то подобного с помощью Visual Studio? Я знаю, что вместо того, чтобы делать

System.Console.WriteLine(str);
System.Diagnostics.Debug.WriteLine(str);

но это не совсем то же самое, так как вы получаете много «мусора» в окне вывода, как и все загруженные символы и тому подобное.

Более того, возможно ли, чтобы все выполнялось в самой IDE при запуске приложения вместо запуска консоли?

user130758 30 мар ’10 в 02:57 2010-03-30 02:57
2010-03-30 02:57

18 ответов

В меню «Инструменты» -> «Параметры Visual Studio» -> «Отладка» -> установите флажок «Перенаправить текст всего окна вывода в окно немедленного действия».

Solved: The program has exited with code 0 in Visual Studio 2022

user294822 31 мар ’10 в 18:47 2010-03-31 18:47
2010-03-31 18:47

В диалоговом окне «Параметры Visual Studio» -> «Отладка» -> установите флажок «Перенаправить текст всего окна вывода в окно непосредственного доступа». Затем перейдите в настройки проекта и измените тип с «Консольное приложение» на «Приложение Windows». В этот момент Visual Studio больше не открывает консольное окно, и вывод перенаправляется в окно вывода в Visual Studio. Тем не менее, вы не можете делать что-либо «креативное», например, запросить ввод ключа или текста или очистить консоль — вы получите исключения во время выполнения.

user39334 08 мар ’12 в 09:19 2012-03-08 09:19
2012-03-08 09:19

В зависимости от того, какие прослушиватели вы подключаете, вывод трассировки может идти в окно отладки, консоль, файл, базу данных или все сразу. Возможности буквально безграничны, так как реализация собственного TraceListener чрезвычайно проста.

user3043 30 мар ’10 в 03:05 2010-03-30 03:05
2010-03-30 03:05

Пришло время проверить последние выпуски для Visual Studio, ребята. Наиболее предлагаемое решение, которое раньше не работало для некоторых из вас, может сработать сейчас.

В Visual Studio 2017 (выпуск версии 15.4.2 и выше) Tools > Options > Debugging > General > (Check Box) Redirect all Output Window text to Immediate Window работал для меня.

Несколько замечаний: 1. Чтобы увидеть окно Immediate, убедитесь, что вы находитесь в режиме отладки. 2. Теперь в вашем распоряжении должно быть 3 других средства отладки, а именно: стек вызовов, точки останова и окно команд, как показано ниже:

С наилучшими пожеланиями!

user7120694 02 янв ’19 в 23:29 2019-01-02 23:29
2019-01-02 23:29

Вы можете попробовать , который позволит вам интегрировать окно консоли в VisualStudio в качестве док-панели внизу. Чтобы использовать это, вы должны

Почему не работает Visual Studio 2022 сразу после установки

Читайте также:
Генеральная программа в которой точно сформулированы цели

  • Добавьте VSConsoleVSCodeExtension в VisualStudio .
  • Добавьте ссылку VSCode NugetPackage в свой проект.
  • Добавить с помощью Console = VSConsole.Console; как ссылка на пространство имен в файле *.cs
  • измените тип вывода с консольного приложения на приложение Windows, чтобы скрыть главное окно консоли, которое появляется при запуске консольного приложения.

Тогда ваше приложение будет использовать класс VSConsole.Console вместо класса System.Console.

user5139020 27 апр ’22 в 00:01 2022-04-27 00:01
2022-04-27 00:01
user301303 30 мар ’10 в 03:14 2010-03-30 03:14
2010-03-30 03:14

Убедитесь, что флажок «Перенаправить весь вывод. » в окнах параметров отладки:

Убедитесь, что флажок

user2223753 29 мар ’17 в 07:58 2017-03-29 07:58
2017-03-29 07:58

Я знаю, что это просто еще один ответ, но я решил написать кое-что для новых веб-разработчиков, которые могут запутаться в части «Изменение в приложении Windows», потому что я думаю, что по умолчанию приложение MVC в Visual Studio 2013 по умолчанию используется тип вывода библиотеки классов.

Мое веб-приложение по умолчанию установлено как тип вывода «Библиотека классов». Вам не нужно это менять. Все, что мне нужно было сделать, это следовать советам: «Инструменты»> «Параметры»> «Отладка»> «Перенаправить весь текст окна вывода» в окно «Немедленно» Затем я использовал System.Diagnostics.Trace предложение Джоэла Кохорна выше.

user3757322 04 дек ’15 в 18:28 2015-12-04 18:28
2015-12-04 18:28

Простое решение, которое работает для меня, для работы с консольной способностью (ReadKey, String with Format и arg и т. Д.), А также для просмотра и сохранения результатов:

Я пишу TextWriter, которые пишут в Console и к Trace и заменить Console.Out с этим.

если вы используете Dialog -> Debugging -> отметьте «Перенаправить весь текст выходного окна в немедленное окно», вы получите его в немедленном и довольно чистом.

мой код: в начале моего кода:

Console.SetOut(new TextHelper());
public class TextHelper : TextWriter < TextWriter console; public TextHelper() < console = Console.Out; >public override Encoding Encoding < get < return this.console.Encoding; >> public override void WriteLine(string format, params object[] arg) < string s = string.Format(format, arg); WriteLine(s); >public override void Write(object value) < console.Write(value); System.Diagnostics.Trace.Write(value); >public override void WriteLine(object value) < Write(value); Write(«n»); >public override void WriteLine(string value) < console.WriteLine(value); System.Diagnostics.Trace.WriteLine(value); >>

Примечание: я переопределяю только то, что мне нужно, поэтому, если вы пишете другие типы, вы должны переопределить больше

user7281658 13 дек ’18 в 08:32 2018-12-13 08:32
2018-12-13 08:32

Если вы используете те же методы на Console которые доступны в Debug class например, в ядре .net вы можете добавить строку ниже в качестве первой строки в program.cs файл.

global using Console = System.Diagnostics.Debug; using System.Diagnostics;

Теперь все ваши вызовы выполняются как Debug.WriteLine(string) во всех файлах *.cs в проекте. В местах, где вы хотите явно использовать console такие методы, как Console.Readline() то вы должны заменить его полным именем класса System.Console.ReadLine() .

Теперь вывод из всех ваших Console.WriteLine(string) теперь отображается в окне вывода Visualstudio. Вы можете дополнительно отфильтровать шум в output window выбрав тип сообщений, которые вы хотите видеть в этом окне, как показано ниже

Читайте также:
Программы для инстаграм чтобы работать с компьютера

user5139020 05 июн ’22 в 00:23 2022-06-05 00:23
2022-06-05 00:23

Вы можете создать приложение-оболочку, которое вы запускаете вместо непосредственного запуска вашего реального приложения. Приложение-оболочка может прослушивать stdout и перенаправлять все в Trace. Затем измените настройки запуска, чтобы запустить оболочку и указать путь к реальному приложению для запуска.

Вы также можете иметь оболочку, автоматически присоединяющую отладчик к новому процессу, если к оболочке прикреплен отладчик.

user118703 30 мар ’10 в 03:25 2010-03-30 03:25
2010-03-30 03:25

Если вам нужен вывод из Console.WriteLine, а перенаправить весь текст окна вывода в немедленное окно не работает, и вам нужно знать вывод тестов из интегрированного обозревателя тестов, используя NUnit.Framework, наша проблема уже решена в VS 2017:

Пример взят из C# In Depth от Джона Скита: это дает следующий результат в Text Explorer:

Когда мы щелкаем синий вывод в разделе Истекшее время справа, и получается следующее:

Стандартный вывод — это желаемый результат, создаваемый Console.WriteLine.

Он работает для консоли и приложений Windows Form в VS 2017, но только для вывода, созданного для обозревателя тестов при отладке или запуске; в любом случае, это моя основная потребность в выводе Console.WriteLine.

user2752308 18 июн ’20 в 04:11 2020-06-18 04:11
2020-06-18 04:11

У вас есть три возможности сделать это, но это нетривиально. Основная идея всех IDE заключается в том, что все они являются родителями дочерних (отладочных) процессов. В этом случае можно управлять стандартным вводом, выводом и обработчиком ошибок. Таким образом, IDE запускают дочерние приложения и перенаправляют их во внутреннее окно вывода. Я знаю еще об одной возможности, но она появится в будущем

  1. Вы можете реализовать свой собственный механизм отладки для Visual Studio. Запуск и отладка управления Debug Engine для приложения. Примеры этого вы можете найти на docs.microsoft.com (движок отладки Visual Studio).
  2. Перенаправление приложения формы с использованием дублирования обработчика std для C++ или использование Console.SetOut(TextWriter) для C#. Если вам нужно печатать в окне вывода, вам необходимо использовать SDK расширения Visual Studio. Пример второго варианта вы можете найти на Github.
  3. Запустите приложение, которое использует System.Diagnostics.Debug.WriteLine (для вывода на печать), и оно запустит дочернее приложение. При запуске дочернего элемента вам необходимо перенаправить stdout в родительский с каналами. Вы можете найти пример на MSDN. Но я считаю, что это не лучший способ.

user13709719 09 июн ’20 в 02:02 2020-06-09 02:02
2020-06-09 02:02

public class DebugTextWriter : StreamWriter < public DebugTextWriter() : base(new DebugOutStream(), System.Text.Encoding.Unicode, 1024) < this.AutoFlush = true; >sealed class DebugOutStream : Stream < public override void Write(byte[] buffer, int offset, int count) < Debug.Write(System.Text.Encoding.Unicode.GetString(buffer, offset, count)); >public override bool CanRead => false; public override bool CanSeek => false; public override bool CanWrite => true; public override void Flush() => Debug.Flush(); public override long Length => throw new NotImplementedException(); public override int Read(byte[] buffer, int offset, int count) => throw new NotImplementedException(); public override long Seek(long offset, SeekOrigin origin) => throw new NotImplementedException(); public override void SetLength(long value) => throw new NotImplementedException(); public override long Position < get =>throw new NotImplementedException(); set => throw new NotImplementedException(); > >; >

Читайте также:
Как убрать программу из панели пуск

который используется путем перенаправления через

System.Console.SetOut(new DebugTextWriter())
user857848 17 фев ’23 в 15:59 2023-02-17 15:59
2023-02-17 15:59

Относительно System.Diagnostics.Debug создание большого количества «мусора» в окне вывода: вы можете отключить это, щелкнув правой кнопкой мыши в окне вывода. Например, есть элемент «Сообщения о загрузке модуля», который вы хотите отключить, и элемент «Вывод программы», который вы хотите сохранить.

user829755 20 ноя ’19 в 18:57 2019-11-20 18:57
2019-11-20 18:57

Вместо этого вы можете собрать выходные данные в результате теста.

Вы не можете предоставить ввод, но вы можете легко предоставить несколько тестов с разными аргументами командной строки, каждый из которых собирает выходные данные.

Если ваша цель — отладка, это простой способ предложить повторяемый сценарий отладки.

namespace Commandline.Test < using Microsoft.VisualStudio.TestTools.UnitTesting; [TestClass] public class CommandlineTests < [TestMethod] public void RunNoArguments() < Commandline.Program.Main(new string[0]); >> >
user7428013 17 янв ’17 в 00:53 2017-01-17 00:53
2017-01-17 00:53

Шаг 1: Щелкните правой кнопкой мыши на имени проекта в обозревателе решений, а затем сделайте тип вывода в качестве оконного приложения

Шаг 2: Отладка -> Параметры..—> Отладка (развернуть)-> Общие -> Перенаправить весь текст окна вывода в окно немедленного действия

Источник: stackru.com

Ошибка при запуске любого кода в Visual Studio (C#)

Всем привет. Ошибка при выполнении любого кода на C# в консольном шаблоне Visual Studio. При запуске кода, даже банального WriteLine появляется в окне вывода появляется подряд много таких сообщений:

1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(4651,5): warning MSB3026: не удалось скопировать «C:UsersusersourcereposApp6_cyclesApp6_cyclesobjDebugnetcoreapp3.1App6_cycles.exe» в «binDebugnetcoreapp3.1App6_cycles.exe». Повторная попытка 1 начнется через 1000 мс. Процесс не может получить доступ к файлу «binDebugnetcoreapp3.1App6_cycles.exe», так как этот файл используется другим процессом. «App6_cycles (17496)» блокирует этот файл

А в конце выдает ошибку:

1>C:Program Files (x86)Microsoft Visual Studio2019CommunityMSBuildCurrentBinMicrosoft.Common.CurrentVersion.targets(4651,5): error MSB3027: не удалось скопировать «C:UsersusersourcereposApp6_cyclesApp6_cyclesobjDebugnetcoreapp3.1App6_cycles.exe» в «binDebugnetcoreapp3.1App6_cycles.exe». Превышено допустимое число повторных попыток (10). Произошел сбой. «App6_cycles (17496)» блокирует этот файл

Источник: ru.stackoverflow.com

Кнопка «Запуск без отладки» на панели инструментов в Visual Studio

Выводим кнопку запуска приложения в панель инструментов.

При написании консольных приложений в Visual Studio у начинающих возникает проблема, что при выводе результата приложение закрывается, не дав взглянуть на ответ.

Можно использовать system(«pause») , _getch() . Но можно использовать запуск приложения без отладки Ctrl + F5 . Тогда приложения после завершения работы не закроет окно консоли. Но данная кнопка отсутствует по умолчанию в панели инструментов:

Кнопка «Запуск без отладки»

В панели инструментов вызываем контекстное меню правой кнопкой:

Контекстное меню

Добавление команды

Выбор команды

Размещение команды

Кнопка «Запуск без отладки» на панели инструментов

Выводим кнопку запуска приложения в панель инструментов.

Выводим кнопку запуска приложения в панель инструментов.

Harrix

Write an awesome description for your new site here. You can edit this line in _config.yml. It will appear in your document head meta (for Google search results) and in your feed.xml site description.

Источник: harrix.dev

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru