何がクラッシュしているのかを知るために、Program.cs (または Main() がある場所) 内から次のようにして未処理の例外をキャッチできます。
static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
MessageBox.Show(e.Exception.Message, "Unhandled Thread Exception");
// here you can log the exception ...
}
static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
{
MessageBox.Show((e.ExceptionObject as Exception).Message +
"\r\n\r\nStack Trace:" +
(e.ExceptionObject as Exception).InnerException.StackTrace, "Unhandled UI Exception");
// here you can log the exception ...
}
メッセージはいくつかの手がかりを与えてくれます。イベント ログも確認してください。役立つ情報が見つかる場合があります。