web-dev-qa-db-ja.com

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

Visual StudioのBuild Solution、Rebuild Solution、Clean Solutionの違いは何ですか?

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

1012
Fawa
  • ビルドソリューション インクリメンタルビルドを実行します。もしそうでなければ think プロジェクトを再ビルドする必要がありますが、そうではありません。変更されていない場合は、プロジェクトの部分的に構築された部分も使用される可能性があります(これがどの程度かかるのかわかりません)。
  • ソリューションを再構築 以前に行ったことを無視して、ソリューションを最初からクリーンアップしてから構築します。これと「クリーンしてからビルドする」の違いは、Rebuildがすべてのプロジェクトをクリーンアップしてからビルドするのではなく、一度に1つずつプロジェクトをクリーンアップしてからビルドすることです。
  • クリーンな解決策 以前のビルドからビルドアーティファクトを削除します。ビルドターゲットディレクトリ(binとobj)に他のファイルがある場合、それらは削除されないかもしれませんが、実際のビルドアーティファクトはそうです。私はこれに対する振る舞いを見ました - 時にはかなり徹底的に削除する時々そうではありません - しかし私は今のところ疑いの利益をVSに与えるでしょう:)

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

823
Jon Skeet

解決策の構築:変更されたコードファイル(DLLとEXE)をコンパイルします。

再構築:コードが変更されたかどうかにかかわらず、すべてのコンパイル済みファイルを削除し、それらを再度コンパイルします。

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

あなたはこのYouTubeビデオを見ることができます(私は違いを実証しました)ここであなたを助けるのに役立つ視覚的な表現です同じことをもっと詳しく分析する。

Build vs Rebuild

Rebuildと(Clean + Build)の違いは、これについても混乱があるようです。

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

しかし、「クリーン」でビルドすると、まず「proj1」と「proj2」用にコンパイルされたファイルをすべて削除し、次に「proj1」をビルドしてから「proj2」をビルドします。

Rebuild Vs Clean

403

から取られた このリンク

ビルドとは、前回のビルド以降に変更されたソースファイルのみをコンパイルしてリンクすることを意味します。一方、リビルドとは、変更の有無にかかわらずすべてのソースファイルをコンパイルしてリンクすることを意味します。ビルドは普通のことで、速くなります。プロジェクトターゲットコンポーネントのバージョンが同期しなくなり、ビルドを成功させるために再構築が必要になることがあります。実際には、清掃する必要はありません。

139
Matthew Jones

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

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

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

Visual Studioが最新のアセンブリに変更を組み込んでいないことに気付いたときに使用されます。時々Visual Studioは間違いを犯します。

きれいな解決策 - すべての中間ファイルを削除する。

他のすべてが失敗して、あなたがすべてをきれいにして、新しく始める必要があるとき、使われます。

31
Justin Niessner

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

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

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

13

私はRebuildが最初にクリーンを実行し、次にビルドを実行すると考えています。おそらく私は間違っています...コメント?

12
Ken Richards

ソリューションをビルドすると、ソリューション内の変更されたプロジェクトがすべてビルドされます。再ビルドはすべてのプロジェクトをビルドしますが、クリーンなソリューションはすべての一時ファイルを削除し、次のビルドが完了するようにします。

7
Steven Evers

ソリューションを構築 - ファイルを変更しているプロジェクトをいくつか構築してアプリケーションを構築します。また、既存のバイナリファイルを消去せず、binまたはobjフォルダ内の更新されたアセンブリを置き換えるだけです。

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

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

7
Sabaridass R

私が人々が除外していると思う1つの大きなことは、ビルドとクリーンアップがどちらもプロジェクト/ソリューションに関するVisual Studioの知識に基づいて実行されるタスクであるということです。私は、Cleanが機能しない、残っているファイルを残さない、あるいは信頼できない、というのが多くの不満を持っています。

Cleanは、Visual Studioまたはコンパイラ自体が実際に作成したファイルやディレクトリのみを削除します。あなたがあなた自身のファイルをコピーするか、ファイル/フォルダー構造が外部のツールまたはソースから作成されるならば、それからVisual Studioは「それらが存在することを知らない」ので、それらに触れないでください。

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

ビルド 変更または必要なプロジェクトでコンパイルを実行します。

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

クリーン 過去に作成したファイル/フォルダを削除しますが、最初は関係ないものはすべて残します。

これがもう少し詳しく説明されて助けになることを願っています。

4
Chase

ソリューションを構築します

これはインクリメンタルビルドを実行します。言い換えれば、それは変更されたコードファイルのみをビルドします。変更されていなければ、それらのファイルは変更されません。

ソリューションを再構築

これにより、現在コンパイルされているすべてのファイル(exeとDLL)が削除され、ファイルにコードの変更があるかどうかにかかわらず、すべてが最初から構築されます。

きれいな解決策メニュー

このメニューはbin/objディレクトリから全てのコンパイルされたファイル(すなわち、EXEとDLL)を削除します。

再構築=クリーン+ビルド

3
Sajisha

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

ReBuildは最初にソリューションからすべてのアセンブリをクリーンアップし、次に行われた変更に関係なくソリューション全体をビルドします。

きれいにしなさい、単に解決策をきれいにする。

1
yashashwi

私が知っているのはCleanだけが "make clean"が行っていたことをしていないということです - ソリューションをきれいにした場合、objとbinファイル/フォルダが削除されるように削除します。私の経験では、Clean and BuildやRebuildが コンパイルすることが知られている のようなソース上でまだ奇妙なエラーを起こすことがよくあります。構築します。

0
steve