[解決済み] Visual Studio build fails: unable to copy exe-file from obj 001debug to bin 001debug
質問
更新してください。 このバグを再現したサンプルプロジェクトがあります。 マイクロソフトコネクト . で示された解決策もテストして確認しました。 以下の回答が採択されました。 はそのサンプルプロジェクトで動作します。この解決策がうまくいかない場合は、おそらく別の問題(別の質問に属するもの)であると思われます。
これは以前にもStack Overflowや他の場所で質問されたことなのですが、これまで見つけたどの提案も役に立たなかったので、新しい質問をしてみるしかないのです。
シナリオ:私はシンプルなWindowsフォームのアプリケーションを持っています(C#、.NET 4.0、Visual Studio 2010)。それは、他のほとんどのフォームが継承するいくつかの基本的なフォームを持っており、それはデータベースアクセスのためにEntity Framework(およびPOCOクラス)を使用しています。派手さはなく、マルチスレッドでも何でもありません。
問題:しばらくはすべて順調でした。その後、突然、アプリケーションを起動しようとしたときに、Visual Studioがビルドに失敗しました。次のような警告が表示されました。 Unable to delete file '...binDebug[ProjectName].exe'. Access to the path '...binDebug[ProjectName].exe' is denied." というエラーが表示され Unable to copy file 'objx86 FilterDebug[ProjectName].exe' to 'bin FilterDebug[ProjectName].exe'. The process cannot access the file 'binDebug[ProjectName].exe' because it is being used by another process.".このプロセスはファイル'binDebug[ProjectName].exe'にアクセスできません。 (Rebuildを実行すると警告とエラーの両方が出ますが、Buildを実行するとエラーのみです。これは関係ないと思いますか?)
警告とエラーメッセージの内容は全く問題なく理解しています。Visual Studioは明らかに、何らかの理由でexeファイルをロックしている間に上書きしようとしています。しかし、これでは問題の解決策を見つけることができません...。唯一うまくいったのは、Visual Studioを一旦シャットダウンして、もう一度起動することです。ビルドと起動はうまくいきますが、フォームの一部を変更すると、また同じ問題が発生し、再起動しなければなりません... かなりイライラします
上に書いたように、これは既知の問題のようなので、たくさんの解決策が提案されています。私がすでに試したものをここに列挙しておきますので、人々は何をスキップすればよいかを知ることができます。
-
新しいクリーンなソリューションを作成し、古いソリューションからファイルだけをコピーする。
-
プロジェクトのビルド前イベントに以下を追加する。
if exist "$(TargetPath).locked" del "$(TargetPath).locked" if not exist "$(TargetPath).locked" if exist "$(TargetPath)" move "$(TargetPath)" "$(TargetPath).locked"
-
プロジェクトのプロパティ(.csprojファイル)に以下を追加する。
<GenerateResourceNeverLockTypeAssemblies>true</GenerateResourceNeverLockTypeAssemblies>
しかし、どれも私にはうまくいかなかったので、私が少しイライラし始めた理由がお分かりいただけると思います。他にどこを探せばいいのか分からないので、誰かが何か教えてくれることを期待しています これはVSのバグなのでしょうか、もしそうならパッチはあるのでしょうか?それとも、私が何か間違ったことをしたのでしょうか、循環参照かそれに類するものがあるのでしょうか、もしそうなら、どのようにしてそれを知ることができるでしょうか?
どんな提案でも大歓迎です :)
更新しました。 下のコメントにあるように、プロセスエクスプローラーで確認したところ、実際に は ファイルをロックしているのはVisual Studioです。
解決方法は?
バカげていると思われるかもしれませんが、私はWindows 7上でVS2010を動かしながら、これらの解決策をすべて試みました。名前の変更とビルド以外はどれもうまくいきませんでしたが、控えめに言っても非常に面倒な作業でした。最終的に、私は犯人を突き止めたのですが、信じがたいことだと思います。しかし、私はAssemblyInfo.csで次のコードを使用していました。
[assembly: AssemblyVersion("2.0.*")]
これは結構多いのですが、なぜかバージョンを2.0.0.0に変更するとまた動くようになりました。Windows7特有のものなのか(まだ3~4週間しか使っていないので)、ランダムなのか、何なのか分かりませんが、これで直りました。私は、VSが生成した各ファイルを管理していたので、どのように増分するか分かっていたのではと推測しています。私は本当によく分からないし、このようなことが起こるのを見たことがありません。しかし、もし他の誰かが同じように髪を引っ張っているのなら、試してみてください。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?
-
[解決済み】Visual Studio 2012 Release Previewのインストール後に「LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt」エラーが発生する。
-
[解決済み] Could not find a part of the path ... binroslyncsc.exe
-
[解決済み] Try-catchは私のコードをスピードアップさせるか?
-
[解決済み] Windows 8でVisual Studioを常にAdministratorとして実行するように強制することはできますか?
-
[解決済み] Visual Studioで、既存のディレクトリツリーをプロジェクトに追加するにはどうすればよいですか?
-
[解決済み] Visual Studio の .suo と .user ファイルをソースコントロールに追加する必要がありますか?
-
[解決済み] エラー - IISメタベースにアクセスできません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】リソースの読み込みに失敗した:ステータス500(内部サーバーエラー)のサーバーの応答)
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】WebResource.axdとは何ですか?
-
[解決済み] Unable to copy file from objDebug to binDebug
-
[解決済み] ビルドエラーです。"他のプロセスによって使用されているため、プロセスはファイルにアクセスできません"
-
[解決済み] ビルド中にVisual Studioが「コピーできませんでした」......と表示される。