Console.WriteLine в приложении без консоли работает в Framework, но не в Core - PullRequest
0 голосов
/ 04 августа 2020

В Visual Studio 2017 мы видели удаление процесса хостинга Visual Studio. Предположительно это связано с недостатком Console.WriteLine больше не работает для приложения, которое работает без подключенной консоли (например, в WPF).

По крайней мере, я так понимаю. Но, к моему удивлению, это не кажется полностью правдой.

Создание проекта WPF. NET Framework 4.8 в Visual Studio 2019, похоже, можно использовать Console.WriteLine просто отлично (неожиданно) и результаты отображаются в окне вывода Visual Studio.

Тем временем работает идентичный проект. NET Core, похоже, ничего не выводит на консоль вывода (как я и ожидал ia ddd). В обоих случаях проект запускается с типом вывода, установленным как Windows Application, поэтому, насколько мне известно, консоль не подключается.

Это довольно специфическая проблема, поскольку я ожидал, что Console.WriteLine будет не работают в обоих случаях. Но похоже, что нет никакой информации о том, почему это работает для приложения Wpf. NET Framework, и, более того, почему оно будет работать под Framework, но не под Core.

Я сам обычно использую Debug .WriteLine и Trace.WriteLine, но хотелось бы знать, почему Console.WriteLine по-прежнему (даже в Visual Studio 2019) работает, хотя и не должен.

Ответы [ 2 ]

0 голосов
/ 04 августа 2020

Ядро net имеет ряд изменений по сравнению с. Net старым. Перенос кода - это не просто вырезание и вставка, и вы можете обнаружить тонкие различия в поведении, когда отклоняетесь от наиболее часто используемого пути.

Стандартным для console.writeline логически является окно консоли. Видя, что для приложения wpf нет окна консоли, это, вероятно, поведение, которое вы наблюдаете. net old, что "неправильно".

Если вы особенно хотели использовать console.writeline, а не отладку .writeline, тогда вы можете дать ему окно консоли для вывода.

Измените свой проект «Тип вывода» на консоль в настройках проекта. Щелкните правой кнопкой мыши свой проект

Свойства> вкладка «Приложение»>

Измените раскрывающийся список в разделе «Тип вывода» на консоль. Когда вы нажимаете f5, вы получаете окно консоли, а также главное окно.

0 голосов
/ 04 августа 2020

Вы можете использовать Debug.WriteLine () в System.Diagnostics, чтобы добавить несколько слов в окно вывода. В Console.WriteLine не выводится в окно вывода в VS 2017 .

...