Я пытаюсь написать сообщение в окно вывода для целей отладки. Я искал такую функцию, как Java system.out.println("")
. Я попробовал Debug.Write
, Console.Write
и Trace.Write
. Это не выдает ошибку, но и ничего не печатает.
Проверены опции «Определить постоянную отладки» и «Определить постоянную TRACE».
Инструменты меню → Параметры → Отладка → «Перенаправить весь текст окна вывода в окно немедленного действия» не отмечены.
Конфигурация: активная (отладка)
Примечание. Я создал проект с помощью мастера как «Приложение Windows Forms», если это необходимо. Я понятия не имею, где искать.
c#
visual-studio-2010
visual-studio
debugging
previous_developer
источник
источник
Debug.WriteLine()
Ответы:
Добавьте
System.Diagnostics
пространство имен, и тогда вы сможетеDebug.WriteLine()
быстро распечатать сообщение в окне вывода IDE. Для более подробной информации, пожалуйста, обратитесь к ним:источник
Это запишет в окно вывода отладки:
источник
Использование:
источник
это то, что вы ищете.
Если нет, попробуйте сделать это:
Инструменты меню → Параметры → Отладка → снимите флажок « Отправить вывод немедленно» .
источник
Tools|Options|Debugging uncheck Send Output to Immediate
Для меня работало только пространство имен Trace, а не Debug:
Я работаю в проекте C # под Visual Studio 2010.
источник
Вы можете искать
или
источник
MessageBox.Show()
может быть очень раздражающим, когда вы хотите написать несколько значений для целей отладки.MessageBox.Show
не записывает в него данные.Звонок
не работает при работе с .NET Core (V 1.0 или 1.1).
Мы должны создавать и использовать регистратор
Microsoft.Extensions.Logging
, но этот журнал появляется только во всплывающем окне консоли dotnet.exe, а не в окне «Вывод» Visual Studio.источник
Это требует стороннего фреймворка, а именно Serilog , но я тем не менее нашел, что это очень плавный опыт с получением результата в каком-то месте, где я его вижу.
Сначала вам нужно установить раковину Serilog's Trace . После установки вам необходимо настроить регистратор следующим образом:
(Вы можете установить другой минимальный уровень или установить для него значение конфигурации или любую другую обычную функциональность Serilog. Вы также можете установить
Trace
регистратор на определенный уровень, чтобы переопределить настройки, или, как вы этого хотите.)Тогда вы просто регистрируете сообщения в обычном режиме, и они отображаются в вашем окне вывода:
Это не так уж важно, поэтому позвольте мне объяснить некоторые дополнительные преимущества. Самым большим для меня было то, что я мог одновременно войти в окно вывода и на консоль :
Это дало мне большую гибкость в отношении того, как я потребляю вывод, без необходимости дублировать все мои звонки на
Console.Write
сDebug.Write
. При написании кода я мог запустить инструмент командной строки в Visual Studio, не боясь потерять вывод при его выходе. Когда я развернул его и мне нужно было что-то отладить (и у меня не было Visual Studio), консольный вывод был легко доступен для моего использования. Те же сообщения также могут быть записаны в файл (или любой другой вид приемника), когда он выполняется как запланированная задача.Суть в том, что использование Serilog для этого действительно облегчило передачу сообщений во множество мест назначения, гарантируя, что я всегда мог легко получить доступ к выводу независимо от того, как я его запустил.
Это также требует минимальной настройки и кода.
источник
Это не ответ на оригинальный вопрос. Но так как я нашел этот вопрос при поиске средств интерактивного сброса данных объекта, я подумал, что другие могут выиграть от упоминания этой очень полезной альтернативы.
В конечном итоге я использовал командное окно и ввел
Debug.Print
команду, как показано ниже. Это напечатало объект памяти в формате, который можно скопировать как текст, и это все, что мне действительно нужно.источник
Распечатать в окне вывода Visual Studio:
источник
В Visual Studio 2015 у меня сработало следующее:
Прочитайте документацию для OutputDebugStringW здесь .
Обратите внимание, что этот метод работает, только если вы отлаживаете свой код (
debug mode
)источник
В целях отладки
System.Diagnostics.Debug.Writeline()
команда не будет скомпилирована в версию выпуска вашего кода, если у вас нет прослушивателей отладки. Он пишет всем слушателям трассировки, который включает окно вывода VS при работе в режиме отладки.Для консольного приложения.
Console.Writeline()
будет работать, но вывод будет по-прежнему генерироваться в версии выпуска вашего двоичного файла.Отладочный вывод также должен появляться в обычном окне вывода при отладке тестов; в то время как вывод console.writeline отсутствует (но его можно найти в окне вывода теста).
источник