Я использую Console.WriteLine () из очень простого тестового приложения WPF, но когда я запускаю приложение из командной строки, я вижу, что в консоль ничего не записывается. Кто-нибудь знает, что здесь может происходить?
Я могу воспроизвести это, создав приложение WPF в VS 2008 и просто добавив Console.WriteLine («текст») в любое место, где выполняется. Любые идеи?
Все, что мне сейчас нужно, это что-то столь же простое, как Console.WriteLine (). Я понимаю, что могу использовать log4net или другое решение для ведения журнала, но мне действительно не нужна такая большая функциональность для этого приложения.
Изменить: я должен был помнить, что Console.WriteLine () предназначен для консольных приложений. Да ладно, без глупых вопросов, правда? :-) Я пока буду использовать System.Diagnostics.Trace.WriteLine () и DebugView.
Ответы:
Вам нужно будет создать окно консоли вручную, прежде чем вы действительно вызовете какие-либо методы Console.Write. Это заставит консоль работать правильно без изменения типа проекта (что для приложения WPF не будет работать).
Вот полный пример исходного кода, показывающий, как может выглядеть класс ConsoleManager и как его можно использовать для включения / отключения консоли, независимо от типа проекта.
В следующем классе вам просто нужно написать
ConsoleManager.Show()
где-нибудь перед любым вызовомConsole.Write
...источник
SetConsoleCtrlHandler
функция, которая позволяет получать уведомления, когдаCTRL_CLOSE_EVENT
событие происходит, но вы ничего не можете с этим сделать, нет ничего, что позволяло бы вашему приложению продолжать работу. Вы будете отключены. Если вы хотите взломать, вы, вероятно, можете поменять обработчик сообщений Windows на консольный процесс и просто сбросить сообщение WM_CLOSE, я никогда не пробовал этого, но это может сработать. Это просто еще одно окно, но с учетом сказанного, если вы не хотите поддерживать эту идею, ваши усилия, вероятно, лучше потратить на что-то другое.Ты можешь использовать
Это будет выводиться в окно «Вывод» в Visual Studio (при отладке).
убедитесь, что в комплект входит диагностическая сборка:
источник
Console.WriteLine
вообще не предназначен для приложений WPF и предназначен только для приложений командной строки.Щелкните правой кнопкой мыши проект, «Свойства», вкладку «Приложение», измените «Тип вывода» на «Консольное приложение», и тогда у него также будет консоль.
источник
Хотя Джон Лейдегрен продолжает опровергать эту идею, Брайан прав. Я только что начал работать в Visual Studio.
Для ясности, приложение WPF по умолчанию не создает окно консоли.
Вы должны создать приложение WPF, а затем изменить OutputType на «Консольное приложение». Когда вы запустите проект, вы увидите окно консоли с окном WPF перед ним.
Это выглядит не очень красиво, но я нашел его полезным, так как я хотел, чтобы мое приложение запускалось из командной строки с обратной связью, а затем для определенных параметров команды я отображал окно WPF.
источник
Можно увидеть вывод, предназначенный для консоли, с помощью перенаправления командной строки .
Например:
запишет все содержимое в
output.txt
файл.источник
Старый пост, но я столкнулся с этим, поэтому, если вы пытаетесь вывести что-то в Output в проекте WPF в Visual Studio, современный метод:
Включите это:
А потом:
источник
Я использую Console.WriteLine () для использования в окне вывода ...
источник
Я создал решение, смешав информацию о посте varius.
Это форма, которая содержит метку и одно текстовое поле. Вывод консоли перенаправляется в текстовое поле.
Также существует класс ConsoleView, реализующий три публичных метода: Show (), Close () и Release (). Последний - оставить консоль открытой и активировать кнопку «Закрыть» для просмотра результатов.
Форма называется FrmConsole. Вот XAML и код C #.
Использовать очень просто:
Для открытия консоли. Использование:
Для вывода текста в консоль.
Использование:
Для закрытия консоли.
Оставляет открытой консоль и включает кнопку Закрыть
XAML
Код окна:
код класса ConsoleView
Надеюсь, этот результат окажется полезным.
источник
Прочтите этот пост, мне очень помог. Загрузите образец кода:
http://www.codeproject.com/Articles/335909/Embedding-a-Console-in-aC-Application
источник
Насколько мне известно, Console.WriteLine () предназначена только для консольных приложений. Думаю, это твоя проблема.
источник