web-dev-qa-db-ja.com

ファイルをobj \ Debugからbin \ Debugにコピーできません

C#でプロジェクトがあり、プロジェクトをコンパイルしようとするたびにこのエラーが表示されます。

(ファイル「obj\Debug\Project1.exe」を「bin\Debug\Project1.exe」にコピーできません。別のプロセスで使用されているため、プロセスはファイル「bin\Debug\Project1.exe」にアクセスできません。)

そのため、タスクマネージャーからプロセスを閉じる必要があります。私のプロジェクトは1つの形式にすぎず、マルチスレッドはありません。

解決策は何ですか(VSを再起動したり、プロセスを強制終了したりしません)?

enter image description here

46

@Udpate:この「答え」を最初に投稿したときから、問題に対する別の説明をする傾向があります。それ以降、問題はVisual Studioの外部でも頻繁に発生しました。1つのフォルダーから別のフォルダーに.exeファイルをコピーしようとしたときです。そもそもWindowsは.exeファイルをコピー(!)することを許可していませんでした(最初に管理者権限を求めていましたが、とにかくコピーすることを拒否しました)。しかし、しばらくして-それ以上のアクションを実行せずに、魔法のように消えました。質問の問題が常にしばらくしてから解決するようです。そのため、問題はプロジェクト出力ファイルの削除の遅延に関連しており、バグの少ないVSに関連していると思います。不当な疑惑をおIびします。 :|

これにより、ソリューションの検索にまったく異なる方向が与えられると思います。そのリンクを見つけて、進行状況を更新します:

https://superuser.com/questions/234569/windows-7-delayed-file-delete

================================================== =======================

これはVSの既知のバグです。私はそれを非常に頻繁に発見しました-主にVS2010で(SP1の有無にかかわらず)。いくつかの「解決策」が推奨されます。それらのいくつかは、私にとって助けになりました:

  1. プロジェクトディレクトリの.suoファイルを削除します。最終的には、ソリューション全体をゼロから作成する必要があります。
  2. 閉じるWindowsフォームデザイナは開いたままになる場合があります。
  3. 出力ディレクトリからターゲットを削除するビルド前スクリプトを使用します。
  4. VSホスティングプロセスを無効にします。

これらのどれもバグを実際に修正しません。しかし、VSを使用可能な状態に戻す場合があります-MSによって真のソリューションが提供されるまで(可能な場合)。

http://social.msdn.Microsoft.com/Forums/en/vsdebug/thread/cea5e4b2-5b33-453c-bffb-8da9f1a1fa4a

http://social.msdn.Microsoft.com/Forums/en/vbide/thread/cd12f3c7-de96-4353-adce-23975e30933f

27
user492238

このバグはVS 2012 Update 2にも存在することを確認できます。

私の回避策は次のとおりです。

  1. クリーンなソリューション(そして他に何もしません)
  2. ソリューションで開いているすべてのドキュメント/ファイルを閉じます
  3. VS 2012を終了
  4. VS 2012を実行する
  5. ビルドソリューション

これが関連するかどうかはわかりませんが、私のプロジェクトは他のプロジェクトのクラスファイルで「リンク」を使用します。これはSilverlight 5プロジェクトであり、.NETおよびSL互換のクラスを共有する唯一の方法はファイル。

考慮すべきこと...単一のソリューションでプロジェクト間でリンクされたファイルを探します。

19
Rob Ainscough

これは動作するはずです。

プロジェクトのプロパティに移動します。ビルドイベントの内部で、ビルド前のイベントコマンドラインの下に、次の2行のコードを追加します。

if exist "$(TargetPath).locked" del "$(TargetPath).locked"
if exist "$(TargetPath)" if not exist "$(TargetPath).locked" move "$(TargetPath)" "$(TargetPath).locked"
18
chaosifier

Objディレクトリを見て、.exeが表示されない場合、Avast!または他のウイルス対策ソフトウェアが削除しています。実際に.exeが表示されてから消えます。 Avast!をオフにすると、問題は解決しました。

VS2010は「ファイル "obj\x86\Debug\[file] .exe"が見つからなかったためコピーできませんでした。」

9
Bryan

本当の問題は、発生しているエラーではありません。それは、アプリケーションがそれ自体をクリーンアップしていないということです。

リソースを解放するのではなく、参照を保持している、またはプロセスが終了するように指示されたときにプロセスが終了しない原因となっています。その問題を修正すると、この問題は自動的に解決します。あなたがコードを投稿しない限り、私たちはそれで本当にあなたを助けることはできません(そしてこの時点で、あなたがそれで助けが必要なら、あなたは新しい質問を始めるべきです)。

9
Jon Seigel

これは、[yourProjectName].exeプロセスは、デバッグの終了後も閉じていません。

この問題には2つの解決策があります。

  1. アプリケーションを変更するたびに、タスクマネージャ->プロセス-> [yourProjectName] .exeに移動して、このプロセスを終了します。システムに変更を加えるたびに、このプロセスを終了する必要があります。

  2. アプリケーションに終了ボタンを追加してウィンドウを終了し、クリックイベントにこれらの行を追加します

    System.Diagnostics.Process.GetCurrentProcess().Kill();
    Application.Exit();
    
7
rajan

Windowsエクスプローラーに移動して、bin/debugフォルダーとobj/debugフォルダーを削除する必要がありました。その後、プロジェクトをクリーンアップして再構築しました。

5
coggicc

これはVS 2010とWin 7で私に起こりました。

  • デバッグ構成マネージャーでは再構築できませんが、リリース構成マネージャーでは再構築できます

debug

私が試したもの:

  • コントロールパネルでアカウントの種類を確認します-ユーザーアカウント->アカウントは管理者です

cpanel

  • Binフォルダーを読み取り専用ではなく設定します

not read only

  • BinフォルダーのセキュリティをEveryoneに追加します

everyone

  • iISサーバーを停止します

iis stop

  • ウイルス対策を停止し、タスクマネージャーとProcessExplorerを使用してとんでもない実行中のプログラムを確認する

  • 管理者としてVSを実行する

すべての方法がまだ機能しない場合

次に、試す最後の方法:

  • 近い解決策
  • ビジュアルスタジオを閉じる
  • 開始-シャットダウン
  • 電源ボタンを押してコンピューターの電源を入れます
  • ユーザータイプで管理者が優先するアカウントにログインします
  • ソリューションを再開する
  • 再建
  • そのように動作します。すべての人はこの方法をReset Computerと呼びます
3
Khaneddy2013

Visual Studios 2012で同様のエラーが発生した後、どこからともなく。プロジェクトのルートフォルダーに移動して右クリックすると、読み取り専用のチェックがオフになり、このエラーがなくなりました。明らかに、TFSはフォルダを読み取り専用にすることがあります。うまくいけば、これが同様の問題を抱えている人を助けるでしょう。ありがとう

3
user2171331
  1. プロジェクトを閉じます
  2. Binフォルダーを削除

私はそれがうまくいくと思う:)

2
Novpiar Effendi

この問題を解決するには、アセンブリの名前を別の名前に変更します。

2
Sofia Khwaja

ソリューションをリビルドする前に、プロジェクトをクリア、IISを停止し、"bin"フォルダープロパティを開きます。読み取り専用属性一般タブで再構築します。

1
Kadir Can

あなたの答えを読んだ後、Task Managerに行き、app.exeを検索しました。
それを見つけて選択し、END TASK .my問題を解決しました。

1
Hamid Talebi

すべてのmsbuild.exeタスクを(タスクマネージャーで)終了すると、VS2012の問題が修正されることがわかりました。

1
mizzle

他の提案がうまくいかない場合は、このURLで提案されている解決策が役に立ちました: http://weblogs.asp.net/fmarguerie/archive/2009/01/29/life-changer-xaml-tip-for -visual-studio.aspx

この質問はこの問題にも関連しています: VS2012-Xamlファイルを開くとXDesProcがハングします

何らかの理由でXAMLファイルを開いてからビルドすると、メインアセンブリのdllファイルを使用しているときにXDesProcプロセスがメモリに残っていました

まあ私は同じ問題を抱えている、それを修正する私の方法は、Windowsで「アプリケーションエクスペリエンス」サービスを停止して無効にすることでした。

0
Kataku

Visual StudioをAdministratorとして実行します

0

これを解決するには、DLLが削除できなかった)のハンドルを持っていたXDesProcを削除しました。

0
Charlie

Visual Studio 2019が突然停止して再起動し、プロジェクトを実行するとこのエラーが発生します。

プロジェクトフォルダーに移動し、binフォルダーとobjフォルダーを削除することでこの問題を解決してから、プロジェクトを削除して再構築します。これで問題が解決します。

0
mehmoodnisar125

最近、VS 2012 Update 2のWinPhone 8プロジェクトでこれを経験しました。

不可解なことに、原因はTupleタイプを使用していた。タプルを使用したコードを削除すると、問題はなくなりました。返された問題を元に戻すコードを追加します。

0
Seamus

私にとってはアンチウイルスでした。 Visual Studioプロジェクトまたは親フォルダー全体をAntivirusの除外リストに追加するか、ファイル拡張子を除外として追加することもできます。この方法はVisual Studio 2010/2012で使用できます。

0
Alex

解決策1:

  1. プロジェクトを閉じます。
  2. Binフォルダーを削除します。
  3. プロジェクトを開きます。
  4. プロジェクトをビルドします。

Solution2:

ビルド前イベントに次のコードを追加します。

attrib -r $(OutDir)*..\* /s

このコマンドラインコードは、「bin」フォルダーのready-only属性を削除します。 Visual Studioで新しいDLLを簡単に削除およびコピーできるようになりました。

0
Rocky

私は長年からこれに苦労しました。最終的にLockHunterをダウンロードして、ファイルをロックしたユーザーを見つけました。私の場合、MBAMでした。プロジェクトのディレクトリをMBAMの除外リストに追加すると、この問題は発生しなくなりました。

0
tmighty

私が解決したのは:

  1. クリーンソリューション
  2. VS(現在のインスタンス)に応じてすべてのプロセスを閉じます。
  3. 再構築
0

あなたの質問に対する直接的な答えではありません。

これを実現できるシナリオの1つを以下に示します-

アプリケーションがデバッグ処理中の場合-たとえば、「プロセスにアタッチ」デバッグすると、このエラーが発生する場合があります

0
Lijo

このソリューションは私のために機能します:ビルド->構成マネージャー->アクティブなソリューションプラットフォーム-> x64を選択し(新規作成が必要な場合があります)、プラットフォームをx64に設定して閉じます

0
Adi

プロジェクトをビルドするとエラーが表示され、avastアンチウイルスは悪意のある試みとしてそれを表示し、プロジェクトは実行されません。作成され、プロジェクトが正常に実行されました。

または、これを試すことができます

Visual Studioビルドの失敗:exeファイルをobj\debugからbin\debugにコピーできません

0
coolprarun

検索とビルドとリビルドで一日を過ごした後、ビジュアルスタジオをオフにするだけで、異なるスレッドでサービスをキャッチするように見えることがわかりました

0
moath naji

非常に簡単な解決策は、タスクマネージャー(CTRL + ALT + DELETE)を開き、[プロセス]タブに移動して、実行中のプロジェクト名でプロセスを名前で検索することです。すべてのプロセスを終了して続行します! :)

0
Dina Bogdan

このエラーが発生した場合、次のように進めることができます

  1. msbuild.exeタスクを終了します
  2. Explorer.exeタスクを終了します
  3. Explorer.exeタスクを再度実行します
0
zawhtut