Есть несколько приложений, которые я запускал, у которых такое поведение прямо из конструктора класса формы. По сути, их конструктор обрабатывает аргументы командной строки и вызывает Environment.Exit (0), когда процесс для аргументов командной строки завершился успешно. Вызов Environment.Exit до полного завершения конструктора класса формы предотвращает появление формы.
Сказав это, он подвержен ошибкам, и я бы сказал, что он не имеет класса формы в качестве запуска приложения. Вместо этого используйте другой класс, который может создавать экземпляры и отображать форму по мере необходимости, или обрабатывать аргументы командной строки.