1. ホーム
  2. visual-studio

[解決済み] エラー Cannot access file bin/Debug/... because it is being used by another process

2022-08-24 21:59:49

質問

プロジェクトのデバッグを行うと、以下のエラーが発生します。

Unable to copy file "objDebugMy Dream.exe" to "binDebugMy Dream.exe". The process cannot access the file 'binDebug**My Dream.exe' because it is being used by another process."

プロセスエクスプローラーを使用すると、MyApplication.exe がなくなっていましたが、以前デバッグを止めたにもかかわらず、System プロセスがまだ使用していることが確認できます。 私のコードを変更し、デバッグを開始すると、必ずこの現象が発生します。USBにプロジェクトをコピーしてデバッグすると、問題なく実行できます。

なぜですか、どうすればこのエラーを修正できますか。

私は Window 7 Professional を使用しています。Xp では、このエラーは一度も発生したことがありません。

どのように解決するのですか?

これは古い問題で、Visual Studio で今でも時々現れるものです。私は何度かこれに悩まされ、VS を再起動したり、格闘したりして何時間も費やしてきました。この問題については、このSOで何度も議論されてきたと思います。MSDNフォーラムでも話題になっています。実際の解決策はありませんが、いくつかの回避策があります。 ここでリサーチを開始する .

何が起こっているかというと、VS がファイルに対するロックを取得し、それを解放していないのです。皮肉なことに、そのロックは、アプリケーションを再構築するときに再作成できるように、VS 自身がファイルを削除するのを防ぎます。唯一の明白な 解決策は、VS を終了して再起動することです。 を実行して、ファイルのロックを解除することです。

私のオリジナルの回避策は、bin/Debug フォルダを開き、実行ファイルの名前を変更することでした。あなたは 削除 ロックされている場合は削除できませんが、名前を変更することは可能です。つまり、末尾に数字を追加したりすれば、すべてのウィンドウを閉じて VS の再起動を待つことなく作業を続けることができるのです。 プリビルド イベントを使用してこれを自動化した人もいます。 を使用して、古い出力ファイル名の末尾にランダムな文字列を追加して、これを自動化した人もいます。そう、これは 巨人 ハックですが、この問題は非常にイライラして衰弱するので、何でもするようになります。

その後、もう少し実験した結果、この問題は、デザイナーの 1 つを開いた状態でプロジェクトを構築したときにのみ発生するようです。そのため、長期にわたって私のために機能し、このような愚かなエラーに再び対処することを防いだソリューションは、WinForms プロジェクトを構築する前に、常にすべてのデザイナー ウィンドウを閉じるようにすることです。確かに、これも多少不便ですが、1 時間に 2 回以上 VS を再起動しなければならないことに比べれば、確実に優れています。

これは WPF にも適用されると思いますが、私はそれを使用しておらず、個人的にその問題を経験していません。

また、私はまだ VS 2012 RC で再現を試みていません。そこでまだ修正されているかどうかはわかりません。しかし、私のこれまでの経験では、Microsoft が修正されたと主張した後でも、この問題はまだ現れています。VS 2010 SP1でもまだ残っています。もちろん、プログラマーが何をやっているのかわからないバカだとは言わない。ただ、このバグには複数の原因があり、実験室で確実に再現するのは非常に難しいと考えている。それは、私が個人的にそれについてバグレポートを提出しないのと同じ理由です (他の人に +1 したことはありますが)、なぜなら私はそれを確実に再現できないようです。

特に誰に向けたものでもない暴言を終わりにします。