2012-09-06 18 views
13

Visual Studio 2010で大きなC#ソリューションをコンパイルする際にこのエラーが発生しました。 コンパイル後に毎回。このソリューションで使用されるもののプロジェクトのOBJフォルダを削除するには、そうでなければ、私は次のエラーました:私はすべてインターネット上で解決策を探していたしましたVisual Studio出力ファイル '... obj Debug Foo.Bar.dll'に書き込めませんでした。

Could not write to output file '...\obj\Debug\Foo.Bar.dll' 
The process cannot access the file because it is being used by another process 

を、実際に見つかった/それらのいくつか試してみました

例:devフォーラムの多くの人がコンパイルを開始しないようにしていましたが、UserControl(いくつかの例ではr sources から)デザイナーが公開されました。

事前ビルドスクリプトをobjフォルダの削除に使用していましたが、この特定の解決方法は問題ありませんが、発行されたプロジェクトが広く使用されているライブラリの場合は再コンパイルによって "親"プロジェクトが再コンパイルされます。

答えて

37

最後に私はこの解決策を発見しましたVS2010(SP1も) "バグ"と私はそれをstackoverflowユーザーと共有したいと思います。

私の場合、問題はcsprojファイルがロックされた'...\obj\Debug\Foo.Bar.dll'ファイルを自己参照していることでした。クレイジー知っている。 は、だから私は.csprojファイルから次の行を削除することで、この厄介な問題を解く:VSがobj \ Debugフォルダ内のアセンブリをロックするようだと、私は最初に問題に別の解決策を見つけた

<Reference Include="Foo.Bar"> 
    <HintPath>obj\Debug\Foo.Bar.dll</HintPath> 
</Reference> 
+2

あなたはあなたの質問に対する答えとしてこれを受け入れるべきです。 – Bernard

+0

@Bernard私は知っているが、私の評価で..私はできない。 cit。あなたは2日で自分の答えを受け入れることができます。 とにかく私はそれをやるでしょう、私は規則を知っています:D – Salaros

+0

私はこの問題のバグを埋めることを考えていましたが、VS12は既に出ているので、修正されません ":D VS12(mis)が同じように動作するかどうかチェックしてもらえますか? – Salaros

2

。プロジェクトにプレビルドスクリプトを追加して問題を解決しました。

del "$(ProjectDir)obj\*.*" /S /F /Q 

サラロスの答えを見てから、それは確かに問題でした。別のプロジェクトのサーバーコントロールを使用する新しいユーザーコントロールを作成しました。何らかの理由で、デザインモードでユーザーコントロールを表示すると、ときどきVSが自己参照を作成します。自己参照を削除しても、VSが参照を再度追加する時間を考えるまで修正されます。その部分の正確なパターンが見つかりませんでした。

PS:

をデバッグオープンのVisual Studio 実行がCに移動:と利用システムのクリーンアップ

再構築しようと、私は私がすると、この問題は私と一緒に起こったvs2012

+0

私のオリジナルの質問をお読みください: "このソリューションは受け入れられますが、発行されたプロジェクトが広く使われているライブラリであれば、その再コンパイルによって"親 "プロジェクトが再コンパイルされます。 これによりデバッグが大幅に遅くなります – Salaros

0

を使用しています、...

あなたは

ソリューションこのエラーを見つける: 管理者として近くのVisual Studio メイクシステムクリーンアップ コンピュータを再起動し オープンのVisual Studio プロジェクト クリーン は、それは私が何とかexeファイルがリリースから行方不明になったため、私の場合は

0

に動作します

を再構築を選択します。これがどう起こったのか分かりません。私はそれをデバッグからのコピーで置き換え、すべてうまくいきました。私はこれを早めにチェックすべきだったが、ファイルが失われてしまうとは思っていなかった。

関連する問題