Visual Studioプロジェクトとソリューション


回答:


70

ソリューションはプロジェクトのコンテナであり、プロジェクト間の依存関係を追跡します。


128

私は他の答えに欠けている情報を見つけました(少なくともEclipseのような他のIDEから来た人々のために)。ソリューションがプロジェクトのコンテナであると言うことは、その一部にすぎません。VSプロジェクトの概念的な特徴(「粒度」を決定するもの)は、1つのプロジェクトが1つの出力(通常は実行可能ファイルまたはライブラリ(dll))を生成することです。したがって、関連するコードを使用する3つの実行可能ファイルをコーディングする場合は、1つのソリューションと少なくとも3つのプロジェクトを作成します。


2
自分でアセンブリを作成せずにインクルードできる共有コードプロジェクトを忘れないでください。
AyCe 2017年

43

比喩を思い付くためだけに..

解決策は家のようなものであり、部屋のようなプロジェクトです。各部屋は機能の一部を提供しますが、部屋のコンテナである家は、部屋をリンクして適切に編成する手段を提供します。

コーニーのようなものですが、私はその場でそれを作ったので、私と一緒に耐えてください:)


26

Visual Studioが物事をより混乱させるように思われることは助けにはなりません。「新規プロジェクト」は、プロジェクトを含む新しいソリューションを実際に作成します。「プロジェクトを開く」は、実際には1つ(または複数)のプロジェクトを含むソリューションを開きます。(ファイルメニューには「プロジェクトを開く/ソリューション」と表示されていますが、実際にはソリューションを開いています。「プロジェクトを閉じる」というのはなく、正確な「ソリューションを閉じる」だけです。

したがって、VSでは常にソリューション内で作業しています。多くのソリューションには1つのプロジェクトしか含まれておらず、新しい開発者はそれらを同じものと考える可能性があります。ただし、他のプロジェクトをソリューションに追加できます。


1つのソリューションに複数のプロジェクトがあることのポイントは何ですか?これは理解できません..
リガ

12

誰かがここまでスクロールダウンすることを決定した場合に備えて... MSのドキュメントは違いを説明するのにかなり良い仕事をしたと思いました ここに関連するビットをコピーして貼り付けました(言い換えると):

Visual Studioでアプリ、アプリケーション、Webサイト、Webアプリ、スクリプト、プラグインなどを作成するときは、プロジェクトから始めます。論理的には、プロジェクトには、すべてのソースコードファイル、アイコン、画像、データファイルなど、実行可能プログラムまたはWebサイトにコンパイルされるもの、またはコンパイルを実行するために必要なものがすべて含まれています。プロジェクトには、プログラムが通信するさまざまなサービスまたはコンポーネントで必要となる可能性があるすべてのコンパイラ設定およびその他の構成ファイルも含まれています。

必要がなければ、ソリューションやプロジェクトを使用する必要はありません。Visual Studioでファイルを開くだけで、コードの編集を開始できます。

文字通りの意味では、このプロジェクトは、(XMLファイルで.vbproj.csproj.vcxprojそれは「含まれている」のすべての項目およびすべてのビルド設定へのパスと一緒に仮想フォルダの階層構造を定義しています)。

Visual Studioでは、プロジェクトファイルはソリューションエクスプローラーによってプロジェクトの内容と設定を表示するために使用されます。プロジェクトをコンパイルすると、MSBuildエンジンはプロジェクトファイルを使用して実行可能ファイルを作成します。プロジェクトをカスタマイズして、他の種類の出力を生成することもできます。

プロジェクトは、論理的な意味で、ファイルシステム内のソリューションに含まれます。ソリューションには、1つ以上のプロジェクト、ビルド情報、Visual Studioウィンドウ設定、およびプロジェクトに関連付けられていないその他のファイルが含まれる場合があります。文字通り、解決策は独自のフォーマットを持つテキストファイルです。通常、手動で編集することは意図されていません。

ソリューションには.suo、プロジェクトで作業した各ユーザーの設定、設定、構成情報を保存する関連ファイルがあります。


7

ソリューションは多くのプロジェクトを持つことができます。

ソリューションは、異なるプロジェクト間の依存関係の管理も処理できます。最終的なソリューションが機能するために、各プロジェクトが適切な順序でビルドされるようにします。


3

プロジェクトには、アプリケーションまたはアプリケーションのコンポーネントを構成する実行可能ファイルとライブラリファイルが含まれています。

ソリューションは、アプリケーションを構成する論理的に関連するプロジェクトのプレースホルダーです。たとえば、アプリケーションのGUI、データベースアクセスレイヤーなどに個別のプロジェクトを設定できます。プロジェクトはプログラムの機能の特定の部門であり、解決策は1つのアプリケーションの下でそれらすべてを統合する傘です。


2

ソリューションはプロジェクトのコンテナです-ソリューションを使用して、さまざまな関連プロジェクト(共有DLLなど)で使用されるアイテムを整理することもできます。


2

解決策は、その拡張である読み取り可能なテキストファイルである.slnと説明し構造化コンテンツの持つプロジェクト、それが含まれていることを。プロジェクトが読み取り可能なXML拡張子がある形式のテキストファイル.vcxprojとそのXMLスキーマに従って構造化コンテンツを有し、その主な目的だけでなく、他のプロジェクトのソースコードにソースコードのファイル名とその依存関係または参照のリストが含まれていることです。


0

ソリューションは、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のプロジェクトはこの一般的なコードプロジェクトに依存できます。また、これらのプロジェクトなどをテストするプロジェクトを用意することもできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.