回答:
私は他の答えに欠けている情報を見つけました(少なくともEclipseのような他のIDEから来た人々のために)。ソリューションがプロジェクトのコンテナであると言うことは、その一部にすぎません。VSプロジェクトの概念的な特徴(「粒度」を決定するもの)は、1つのプロジェクトが1つの出力(通常は実行可能ファイルまたはライブラリ(dll))を生成することです。したがって、関連するコードを使用する3つの実行可能ファイルをコーディングする場合は、1つのソリューションと少なくとも3つのプロジェクトを作成します。
Visual Studioが物事をより混乱させるように思われることは助けにはなりません。「新規プロジェクト」は、プロジェクトを含む新しいソリューションを実際に作成します。「プロジェクトを開く」は、実際には1つ(または複数)のプロジェクトを含むソリューションを開きます。(ファイルメニューには「プロジェクトを開く/ソリューション」と表示されていますが、実際にはソリューションを開いています。「プロジェクトを閉じる」というのはなく、正確な「ソリューションを閉じる」だけです。
したがって、VSでは常にソリューション内で作業しています。多くのソリューションには1つのプロジェクトしか含まれておらず、新しい開発者はそれらを同じものと考える可能性があります。ただし、他のプロジェクトをソリューションに追加できます。
誰かがここまでスクロールダウンすることを決定した場合に備えて... MSのドキュメントは違いを説明するのにかなり良い仕事をしたと思いました ここに関連するビットをコピーして貼り付けました(言い換えると):
Visual Studioでアプリ、アプリケーション、Webサイト、Webアプリ、スクリプト、プラグインなどを作成するときは、プロジェクトから始めます。論理的には、プロジェクトには、すべてのソースコードファイル、アイコン、画像、データファイルなど、実行可能プログラムまたはWebサイトにコンパイルされるもの、またはコンパイルを実行するために必要なものがすべて含まれています。プロジェクトには、プログラムが通信するさまざまなサービスまたはコンポーネントで必要となる可能性があるすべてのコンパイラ設定およびその他の構成ファイルも含まれています。
必要がなければ、ソリューションやプロジェクトを使用する必要はありません。Visual Studioでファイルを開くだけで、コードの編集を開始できます。
文字通りの意味では、このプロジェクトは、(XMLファイルで
.vbproj
、.csproj
、.vcxproj
それは「含まれている」のすべての項目およびすべてのビルド設定へのパスと一緒に仮想フォルダの階層構造を定義しています)。Visual Studioでは、プロジェクトファイルはソリューションエクスプローラーによってプロジェクトの内容と設定を表示するために使用されます。プロジェクトをコンパイルすると、MSBuildエンジンはプロジェクトファイルを使用して実行可能ファイルを作成します。プロジェクトをカスタマイズして、他の種類の出力を生成することもできます。
プロジェクトは、論理的な意味で、ファイルシステム内のソリューションに含まれます。ソリューションには、1つ以上のプロジェクト、ビルド情報、Visual Studioウィンドウ設定、およびプロジェクトに関連付けられていないその他のファイルが含まれる場合があります。文字通り、解決策は独自のフォーマットを持つテキストファイルです。通常、手動で編集することは意図されていません。
ソリューションには.suo
、プロジェクトで作業した各ユーザーの設定、設定、構成情報を保存する関連ファイルがあります。
ソリューションは多くのプロジェクトを持つことができます。
ソリューションは、異なるプロジェクト間の依存関係の管理も処理できます。最終的なソリューションが機能するために、各プロジェクトが適切な順序でビルドされるようにします。
ソリューションは、Visual Studioが1つ以上の関連プロジェクトを整理するために使用するコンテナーです。Visual Studioでソリューションを開くと、含まれているすべてのプロジェクトが自動的に読み込まれます。
Visual Studioで新しいプロジェクトを作成すると、ソリューションがまだ開いていない場合は、プロジェクトを収容するソリューションが自動的に作成されます。
ソリューション内の他のプロジェクトに対するプロジェクトの依存関係を設定できます。依存プロジェクトは、依存するプロジェクトがビルドされた後にビルドされます。
詳細については、https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutionsを参照してください。
Eclipseのバックグラウンドを使用している場合は、プロジェクトのビルドパスに移動して、他のプロジェクトへの依存関係を追加するか、外部jarを追加します。VSでは、関連するすべてのプロジェクトがグループ化されているソリューションと呼ばれる単一のコンテナーでそれを行うことができます。
例えば。あなたがビルドし、xamrinでandroidおよびiOSアプリを作成している場合、別のプロジェクトに入る可能性のあるいくつかの一般的なコードとリソースがあり、AndroidとiOSのプロジェクトはこの一般的なコードプロジェクトに依存できます。また、これらのプロジェクトなどをテストするプロジェクトを用意することもできます。