0

しばらくの間、すべてが順調でした。その後、アプリケーションを起動しようとしたときに、突然、Visual Studio のビルドに失敗しました。「ファイル '...bin\Debug[ProjectName].exe' を削除できません。パス '...bin\Debug[ProjectName].exe' へのアクセスが拒否されました。」という警告が表示されました。エラー「ファイル 'obj\x86\Debug[ProjectName].exe' を 'bin\Debug[ProjectName].exe' にコピーできません。プロセスはファイル 'bin\Debug[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 のバグですか? もしそうなら、パッチはありますか? または、私は何か間違ったことをしましたか、循環参照または類似のものを持っていますか?もしそうなら、どうすれば見つけられますか?

どんな提案でも大歓迎です:)

更新: 以下のコメントで述べたように、Process Explorer を使用して、実際にファイルをロックしているのは Visual Studio であることも確認しました。

4

3 に答える 3

1

プログラム「OEE.Windows.exe」を閉じます。おそらくテスト中であり、最初に閉じずに再構築しようとしました。

于 2013-03-18T08:38:42.453 に答える
1

デバッグのセッションを開く前に、実行中のセッションを閉じる必要があります。

vshost.exe プロセスの強制終了を試みることができます。

taskkill /F /IM ".....vshosts.exe"

リンク: http://msdn.microsoft.com/en-us/library/ms185330(v=vs.100).aspx

于 2013-03-18T08:40:15.020 に答える
1

\debug\OEE.windows.exeファイルシステムからexeをダブルクリックして手動でファイルを実行したようです。そして、ビジュアル スタジオからプロジェクトをビルドしようとしています。ビルド中に Visual Studio が行うことは、新しいファイルを作成することですoee.windows.exeが、同じ名前のファイルが既に存在し、プロセスによって使用されているため、作成できません。

于 2013-03-18T08:40:39.547 に答える