По умолчанию sqlite возвращает immediatly с заблокированной, занятой ошибкой, если база данных занята и заблокирована. Можно попросить его ожидать и продолжать пробовать некоторое время перед отказом. Это обычно решает проблему, если у Вас действительно нет 1000-х потоков, получающих доступ к Вашему дб, когда я соглашаюсь, что sqlite был бы несоответствующим.
// set SQLite to wait and retry for up to 100ms if database locked sqlite3_busy_timeout( db, 100 );
Используйте MiniDumps вместо "exception.ToString ()". Это даст вам гораздо больше информации и не требует распространения .pdb вместе с .exe.
Полезная ссылка: Посмертная отладка вашего приложения с помощью минидампов и Visual Studio .NET.
Вы можете написать исполняемый файл-заглушку, который содержит в качестве встроенных ресурсов как ваш фактический исполняемый файл, так и его файл pdb. После запуска исполняемого файла staub он извлекает реальный исполняемый файл и pdb во временный каталог и запускает его.
Так же, как это делают некоторые установщики или другие приложения.
Я не уверен, стоит ли это дополнительных усилий, хотя .