こんにちは、スタックオーバーフローです。
最近、Visual Studio 2010 でプログラミングしているときに、ビルドしようとすると VS が bin/Debug/(ProjectName).exe ファイルをロックするという問題が発生し、プロジェクトをビルドしようとすると以下のエラーが表示されます。 10回:
ファイル「obj\x86\Debug\TileEngine.exe」を「bin\x86\Debug\TileEngine.exe」にコピーできません。別のプロセスで使用されているため、プロセスはファイル 'bin\x86\Debug\TileEngine.exe' にアクセスできません。
ソースを編集してからデバッグしようとすると、問題が発生します。さまざまなプログラムを使用して確認しましたが、ファイルを使用する唯一のプログラムは Visual Studio です。
10分くらい待ってからビルドすればちゃんと動きそうですが、いろいろ試してみると10分待ってからビルドするのはよくないです。
このサイトだけでなく、Google で見つけられるあらゆる場所で、さまざまな解決策を試しました。
私が見つけたが、うまくいかなかったいくつかの解決策
解決策 1 - ビルド前のスクリプトを使用する
ここ Stackoverflow に関するいくつかの異なる質問で、1 つの解決策が見つかりました。Project Properties > Build Events
それは、ビルド前イベントのコマンド ラインに次のように追加することです。
if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
これにより、通常よりも 1 回プロジェクトをビルドすることができましたが、コードを再度編集してからビルドすると、同じエラーが発生しました。
注:デバッグ ビルドの代わりにリリースをビルドしようとすると、ビルド前のスクリプトが壊れているようで、コード '1' で終了し、VS が適切にビルドできないようです。ビルド前のスクリプトを削除すると、再び「通常」のように機能しますが、同じエラーが発生します。
解決策 2 - Visual Studio を管理者として実行する
これは私が見つけた別の解決策ですが、どちらもうまくいきませんでした。そのため、Visual Studio には必要なすべての権限が既にあり、管理者として実行しても実際には違いはないと思います。
解決策 3 - AssemblyVersion を変更する
この質問では、Visual Studio ビルドが失敗します: exe ファイルを obj\debug から bin\debug にコピーできません。ファイルAssemblyVersion
内のを に変更することを含む別の解決策を見つけました。しかし、これは私にとって何の違いもありませんでした。Properties\AssemblyInfo.cs
"2.0.0.0"
解決策 4 - ビルド前に UserControl デザイナーを閉じる
インターネット上のさまざまな回答によると、Visual Studio はビルドされたプロジェクトの実行可能ファイルを使用してUserControl
デザイナーをレンダリングしているようです (?)。UserControl
私の場合、XNA を主に使用し、デザイナーを使用しないため、これはおそらくそうではありません。
解決策 5 - アプリケーションの終了時にリソースをクリーンアップする
これは、私が適切に実装できなかった解決策かもしれません。ただ、これが解決策である場合、なぜ以前はそれを行う必要がなかったのでしょうか。XNA は、Content
パイプラインを介してロードされるすべてのものをアンロードすると想定しているため、このソリューションはあまり意味がありません。
この問題に光を当てることができる人がいれば、それは本当に素晴らしいことです.2秒の変更を行ったために10分間待つのは好きではないので、実際に何かをプログラミングするのを止めています.いつも。