Всплывающее окно отладчика JIT возникает, когда есть необработанное исключение. То есть исключение туннелирует до самого стека до корня любого потока во время выполнения.
Чтобы избежать этого, вы можете обработать событие AppDomain.CurrentDomain.UnhandledException
и просто вызвать Environment.Exit(1)
, чтобы выйти изящно.
Это будет обрабатывать все исключения во всех потоках в вашем AppDomain. Если вы не делаете ничего особенного, ваше приложение, вероятно, имеет только один домен приложений, поэтому достаточно добавить это в ваш метод public static void Main
:
AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
{
Console.Error.WriteLine("Unhandled exception: " + args.ExceptionObject);
Environment.Exit(1);
};
Вы, вероятно, должны использовать регистратор NAnt, чтобы записать ошибку и в этом случае (хотя не могу вспомнить API для этого случая).
Вы также можете отключить отладку JIT на машине. Я бы рекомендовал это только при определенных обстоятельствах, например, для выделенного сервера сборки.