Приложение WPF с графическим интерфейсом и консольными режимами - PullRequest
2 голосов
/ 19 марта 2011

Я понимаю, что существуют проблемы с запуском приложения WPF из окна консоли и выводом на консоль, а не с отображением графического интерфейса пользователя (он же Этот вопрос ).

«Вывод» этого вопроса (который, как представляется, хорошо исследован и задан) заключается в том, что можно вывести данные из приложения на консоль, но он немедленно возвращается - вместо того, чтобы блокировать, как консольное приложение.

Однако, глядя на Visual Studio, в частности, на процесс devenv.exe, это именно то, что он умеет делать:

  • Двойной щелчок по devenv.exe из проводника запускает только графический интерфейс приложения.
  • Из окна консоли (cmd.exe)
    • devenv.exe<enter> запускает Gui, возвращаясь к консоли немедленно
    • devenv.exe /?<enter> отображает справку в консоли, возвращая только после того, как были отображены все выходные данные.
    • devenv.exe test.txt<enter> запускает графический интерфейс Gui (загрузка test.txt), немедленно возвращаясь к консоли

Итак, такое поведение должно быть возможно в наших собственных приложениях! Кто-нибудь знает как?

Ответы [ 2 ]

5 голосов
/ 19 марта 2011

В информационной заметке эта статья здесь объясняет, как это делает Visual Studio. Я цитирую:

В случае VisualStudio существует два двоичных файла: devenv.com и devenv.exe. Devenv.com - это консольное приложение. Devenv.exe это приложение с графическим интерфейсом. При вводе devenv из-за правила проверки Win32 выполняется devenv.com. Если нет ввода, devenv.com запускает devenv.exe и завершает свою работу. Если есть входные данные, devenv.com обрабатывает их как обычное консольное приложение.

1 голос
/ 19 марта 2011

Зайдите в свой App.xaml и удалите Startup Uri и все ссылки на ваше главное окно приложения, которое запускается.

Вы можете переопределить OnStartup Uri. См. Этот вопрос: WPF Command Line

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