Как я могу подавить «черную оболочку», которая появляется при запуске приложения C# Winforms? - PullRequest
0 голосов
/ 14 июля 2020

Когда я запускаю свое приложение C# (скомпилированное в VS, Release build), щелкнув файл .exe, я получаю черную оболочку вместе с моим GUI. Я не уверен, почему появляется эта черная оболочка, поскольку ее нет ни в одном из моих других приложений GUI. Как я могу подавить черную оболочку? Я случайно щелкнул что-то, чего не должно было быть перед компиляцией?

Как вы можете видеть ниже, мое приложение GUI и черная оболочка (за приложением).

enter image description here

The following is my directory structure where the application is executing out of:

введите описание изображения здесь

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

Если «Тип вывода» проекта 1 случайно изменить с «Windows Приложение» на «Консольное приложение», вы получите очень похожие симптомы.

Предполагая, что вы начали с шаблона приложения Windows, вашим основным потоком по-прежнему будет STA, и ничто не мешает консольному приложению запускать windows сообщение l oop и отображать пользовательский интерфейс (в соответствии с настройками шаблона). Но вы всегда получаете окно консоли, прикрепленное к консольному приложению.

Если это произошло, вам просто нужно изменить Тип вывода обратно на Windows Приложение.

1 Свойства проекта, вкладка Приложение.

0 голосов
/ 14 июля 2020

По умолчанию приложение Winforms не показывает консоль, это то, что вам нужно активно вызывать. Обычно это делается путем вызова собственной функции AllocConsole:

https://www.pinvoke.net/default.aspx/kernel32.allocconsole

Я бы поискал в базе кода и посмотрел, соответствует ли AllocConsole звонят куда угодно.

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