無料 Visual Studio のビルド ソリューション、再構築ソリューション、およびクリーン ソリューションの違い




visual studio 無料 (10)

Visual Studioのビルドソリューション、リビルドソリューション、およびクリーンソリューションの違いは何ですか?

これらのそれぞれを使用する適切な時期はいつですか?


ビルドソリューション - ファイルを変更したアセンブリをビルドします。 アセンブリに変更がない場合、アセンブリは再構築されません。 また、中間ファイルも削除しません。

最も一般的に使用されます。

ソリューションの再構築 - 変更に関係なくすべてのアセンブリを再構築しますが、中間ファイルは残ります。

Visual Studioで最新のアセンブリに変更が反映されていないことがわかったときに使用されます。 ときどきVisual Studioは間違いを犯します。

クリーンソリューション - すべての中間ファイル削除し、変更に関係なくすべてのアセンブリを再構築する

他のすべてが失敗し、すべてをきれいにして新鮮なものから始めなければならないときに使用されます。


ビルドソリューションは、ソリューションで変更されたプロジェクトのみをビルドし、変更されていないアセンブリには影響しません。

ReBuildはまず、ソリューションからすべてのアセンブリをクリーンアップし、変更があってもソリューション全体を構築します。

清潔で、ソリューションを単に清掃してください。


ビルドソリューション:変更されたコードファイル(DLLとEXE)をコンパイルします。

Rebuild:コードが変更されたかどうかにかかわらず、コンパイルされたファイルをすべて削除し、コンパイルし直します。

クリーンなソリューション:すべてのコンパイル済みファイル(DLLおよびEXEファイル)を削除します。

このYouTubeのビデオを見ることができます( Visual Studioのビルド対リビルド対クリーン(C#のインタビューの質問と回答) )。ここで私は違いを実証し、以下は視覚的な表現で、より詳細に分析するのに役立ちます。

リビルドと(クリーン+ビルド)の違いは、これにもいくつかの混乱があるように思われるためです。

違いは、すべてのプロジェクトでビルドとクリーンシーケンスが行われる方法です。 ソリューションに「proj1」と「proj2」の2つのプロジェクトがあるとします。 リビルドを行うと、 "proj1"が取り込まれ、 "proj1"のコンパイル済みファイルがクリーン(削除)され、ビルドされます。 その後、2番目のプロジェクト "proj2"、 "proj2"のためのコンパイル済みファイルのクリーンアップ、 "proj2"のコンパイルが行われます。

しかし、 "クリーン"ビルドを行うと、まず "proj1"と "proj2"のコンパイル済みファイルをすべて削除し、次に "proj1"とそれに続く "proj2"をビルドします。


私が知っているのは、クリーンは、 "クリーンな"ものをやっていないことです - 私はそれがobjとbinファイル/フォルダを削除すると期待していたソリューションをクリーンアップすると、ソースが新しくチェックアウトされたものです。 私の経験では、CleanとBuildまたはRebuildがまだコンパイルされているソース上で奇妙なエラーを生成し、必要なものがbin / objフォルダの手動削除である場合があります。


  • ビルドソリューションはインクリメンタルビルドを実行します。プロジェクトを再構築する必要がないと考えられる場合、それは実行されません。 変更されていない場合は、プロジェクトの部分的に構築されたビットを使用することもできます(これがどれくらいかかりますかわかりません)
  • ソリューション再構築すると、それまでに行ったことはすべて無視され、ゼロからソリューションが構築されます。 これと「Clean、Build」の違いは、Rebuildがすべてをクリーンアップしてビルドするのではなく、一度に1つずつプロジェクトをクリーンアンドビルドすることです。
  • クリーンなソリューションは、ビルド成果物を以前のビルドから削除します。 ビルドターゲットディレクトリ(binおよびobj)に他のファイルがある場合、それらは削除されないかもしれませんが、実際のビルド成果物は存在します。 私はこの変化のための振る舞いを見たことがあります - 時にはかなり徹底的に削除することもありますが、時には削除することもありません - しかし、私はVSにその瞬間の疑念の恩恵を与えます:)

(これらのリンクはdevenv.exeコマンドラインスイッチへのリンクですが、メニュー項目と同じです)。


ビルドソリューション - ファイルを変更したアセンブリをビルドします。 アセンブリに変更がない場合、アセンブリは再構築されません。 また、中間ファイルも削除しません。

ソリューション再構築することで、クリーンアップしてから、ソリューションを最初から作成し、前に行ったことはすべて無視します

Clean Solutionは、bin / objディレクトリからコンパイルされたすべてのファイル(EXEファイルとDLLファイル)を削除します。


ビルドソリューション - ビルドソリューションは、ファイルが変更されているプロジェクトの数を増やしてアプリケーションを構築します。 また、既存のバイナリファイルは消去されず、binまたはobjフォルダ内の更新されたアセンブリのみが置き換えられます。

ソリューションの再構築 - ソリューションを再構築すると、 ソリューション内のすべてのプロジェクトをクリーンアップしてビルドすることで、アプリケーション全体が構築されます。 ビルドする前に、binとobjフォルダからすべてのバイナリファイルをクリアします。

クリーンソリューション - クリーンソリューションは、binとobjフォルダからすべてのバイナリファイルをクリアするだけです。


このリンクから取られた:

ビルドとは、最後のビルド以降に変更されたソースファイルのみをコンパイルおよびリンクすることを意味します。リビルドは、変更されているかどうかにかかわらず、すべてのソースファイルをコンパイルおよびリンクします。 ビルドは通常のことであり、高速です。 場合によっては、プロジェクトターゲットコンポーネントのバージョンが同期しなくなり、ビルドを成功させるために再構築が必要になることがあります。 実際には、きれいにする必要はありません。


ビルドソリューションは、変更されたソリューション内のプロジェクトを構築します。 Rebuildは、何があってもすべてのプロジェクトをビルドします。クリーンなソリューションは、すべての一時ファイルを削除し、次のビルドが完了したことを保証します。


私が人々に残していると思う重要なことの1つは、「ビルド」と「クリーン」はどちらもVisual Studioのプロジェクト/ソリューションの知識に基づいて実行されるタスクです。 私は、Cleanが実際には信頼できないと言った理由が実際には信頼性の高いものになってしまったときに、Cleanが動作しないか、残ったファイルを残すか、または信頼できないと不平を言うのをたくさん見ています。

Cleanは、Visual Studioまたはコンパイラ自身が実際に作成したファイルおよび/またはディレクトリのみを削除します(クリーン)。 独自のファイルをコピーしたり、外部のツールやソースからファイル/フォルダ構造を作成した場合、Visual Studioは「存在することを知らない」ため、それらに触れてはいけません。

クリーン操作で基本的に "del *。*"が実行されたとしますか? これは壊滅的な可能性があります。

Buildは、変更されたプロジェクトまたは必要なプロジェクトをコンパイルします。

Rebuildは、変更や必要なことに関係なく、コンパイルを実行します。

クリーンは過去に作成したファイルやフォルダを削除しますが、最初は何もしなかったものは残します。

私はこれが少し精巧になり、助けてくれることを願っています。





visual-studio