Почему мое консольное приложение .NET закрывается без запуска Main? - PullRequest
0 голосов
/ 10 ноября 2011

Я только что открыл исходный код консольного приложения, которое было развернуто пару лет назад, чтобы запускаться два раза в день в качестве запланированной задачи Windows на нашем сервере (он что-то обновляет в базе данных). Когда он был развернут, он работал нормально, но теперь нам нужно внести некоторые изменения в код. Я пытаюсь запустить его в Debug, и программа даже не вводит sub main. Он попадает в черту

static void Main (строка [] args) и только что закончил работу. Окно консоли исчезнет. Я не слышал от клиентов о том, что рабочая версия не работает, но когда я проверяю их серверы, я не вижу записей в журнале событий, которые я должен (приложение должно записываться в журнал событий при каждом запуске )

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Это, вероятно, проблема с DLL.

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

Это также может произойти, если статический конструктор этого типа вызывает Environment.FailFast().

0 голосов
/ 16 августа 2013

Я также видел, как это происходит, если у вас нет правильной версии .NET Framework на компьютере, на котором вы запускаете приложение. Возможно, вы изменили целевую версию фреймворка при перекомпиляции.

...