私はこの奇妙な問題を抱えています。アプリケーションをデバッグしようとするとすべて問題なく、ビルドするとデバッグフォルダーにexeファイルが作成されます。しかし、デバッグフォルダーからアプリケーションを起動しようとすると、エラーが発生します... Visual C# 2008、Visual Studio 2010 および 2012 で試してみましたが、常に同じです。誰かが同じ問題を抱えていましたか?ビジュアル スタジオ内でのみアプリケーションを使用することにうんざりしています。誰かが助けてくれることを願っています。ところで、アプリケーションを起動した後、エラーは表示されません...「アプリケーションが機能しなくなりました」とだけ表示されます。
2 に答える
依存するすべての dll と構成ファイルが exe にアクセスできるかどうかを確認します。これには依存関係ウォーカーを使用できます。コンソール アプリケーションに変換して、そこでエラーやログを確認してください。デバッグできない場合に役立つように、常にログ ファイルを作成する必要があります。
「アプリケーションが機能しなくなりました」とだけ表示されます。
それに何か他のことを言わせるのはあなたの仕事です。Windows はクラッシュした .NET アプリについてかなり間抜けで、.NET について何も知りません。これは悲惨な Longhorn プロジェクトの悲しい副作用です。AppDomain.CurrentDomain.UnhandledException イベントのイベント ハンドラーを作成する必要があります。できるだけ早く Main() メソッドでイベントをサブスクライブします。
イベント ハンドラーで、e.ExceptionObject.ToString() の値を表示またはログに記録します。MessageBox または Console.WriteLine() 少なくとも。例外メッセージと、コードがクラッシュした場所を正確に示すホーリー スタック トレースが表示されます。そこからコードのバグを見つけるのにほとんど問題はありません。通常、ファイルのフルパスを使用しないことに関係がありますが、それは単なる推測です。例外メッセージにより、あなたと私たちが推測する必要がなくなります。