ieroglyph
@ieroglyph
Кодю, ем, сплю

Почему приложение WinForms не запускается из командной строки?

Есть моё приложение, написанное на Managed C++, использующее WinForms. Необходимо запускать его с помощью bat-файла. После очередного рядового изменения (изменение строки фильтра в диалоге открытия файла) запуск через командную строку стал приводить либо к ошибке "Прекращена работа приложения, поиск решения...", либо, на некоторых машинах, молчаливому переходу к следующей строке bat-файла через 2 секунды. Происходит независимо от наличия аргументов при запуске. Аналогично при запуске через cmd.exe. Лог, создающийся при запуске в первую очередь, не успевает создаться.
Запуск любым другим методом (запуск .exe через Explorer, запуск через ярлык с аргументами, запуск через планировщик задач, запуск отладчика) происходит правильно.
Версия исходного кода, при которой всё работало, утеряна.
Целевая платформа .NET4.0, ОС Windows 8.1 и Windows 7. Язык систем разный, кириллицы в пути нигде нет. Режим администратора не влияет. Системы и приложение проверялись и в версии Win32, и в версии x64.
В чём могла бы быть причина такого поведения?
  • Вопрос задан
  • 328 просмотров
Решения вопроса 1
ieroglyph
@ieroglyph Автор вопроса
Кодю, ем, сплю
Сам себе ответил:
полагаться на
ApplicationPath = System::Environment::GetCommandLineArgs()[0]

оказалось плохой идеей, так как при вызове из командной строки нулевым параметром передаётся имя исполняемого файла без полного пути к нему.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы