プロジェクト参照

外部コンポーネントを使用するためにコードを記述する場合は、あらかじめプロジェクトにそのコンポーネントへの参照を追加しておく必要があります。 参照は、次の種類のコンポーネントに対して行うことができます。

  • .NET Framework クラス ライブラリまたはアセンブリ

  • COM コンポーネント

  • 同じソリューション内のプロジェクトにあるその他のアセンブリまたはクラス ライブラリ

  • XML Web サービス

XML Web サービス参照の詳細については、「Visual Studio の Web 参照」を参照してください。

デザイン時の参照の追加

デザイン時にコンポーネントへの参照を追加するには、[参照の追加] ダイアログ ボックスを使用します。

[参照の追加] ダイアログ ボックスを使用すると、一覧にないアセンブリを参照できます。 GAC (グローバル アセンブリ キャッシュ) は厳密にランタイム環境の一部であるため、そこから参照を追加することはできません。

プロジェクトでアセンブリを参照すると、Visual Studio は次の場所でアセンブリを検索します。

  • 現在のプロジェクト ディレクトリ。 ここにあるアセンブリは、[参照] タブに表示されます。

  • 同じソリューション内のその他のプロジェクト ディレクトリ。 ここにあるアセンブリは、[プロジェクト] タブに表示されます。

デザイン時に参照を追加する方法の詳細については、「方法: Visual Studio で参照を追加または削除する」を参照してください。

注意

すべてのプロジェクトには、mscorlib への暗黙的な参照が含まれます。 Visual Basic プロジェクトには、Microsoft.VisualBasic への暗黙的な参照が含まれます。

Visual Studio 2010 では、System.Core が参照のリストから削除された場合でも、すべてのプロジェクトに System.Core への暗黙的な参照が含まれます。

実行時の共有コンポーネントへの参照

実行時には、コンポーネントがプロジェクトの出力パスまたは GAC (グローバル アセンブリ キャッシュ) のどちらかにある必要があります。 どちらの場所にも存在しないオブジェクトへの参照がプロジェクトに含まれている場合は、プロジェクトをビルドするときに、その参照をプロジェクトの出力パスにコピーする必要があります。 CopyLocal プロパティは、コピーを作成する必要があるかどうかを示します。 値が True の場合は、プロジェクトをビルドするときに参照がプロジェクト ディレクトリにコピーされます。 値が False の場合は、参照はコピーされません。

GAC に登録されているカスタム コンポーネントへの参照を含むアプリケーションを配置した場合、CopyLocal の設定に関係なく、そのコンポーネントはアプリケーションと共に配置されません。 Visual Studio の旧バージョンでは、参照に CopyLocal プロパティを設定して、アセンブリを確実に配置することができました。 現バージョンでは、アセンブリを \Bin フォルダーに手動で追加する必要があります。 これにより、すべてのカスタム コードを監視下に置いて、見覚えのないカスタム コードを公開するリスクを軽減します。

アセンブリまたはコンポーネントがグローバル アセンブリ キャッシュまたはフレームワーク コンポーネントである場合、既定では、CopyLocal プロパティは False に設定されます。 それ以外の場合、値は True に設定されます。 プロジェクト間参照は、常に True に設定されます。

異なるバージョンの .NET Framework を対象とするプロジェクトまたはアセンブリへの参照

異なるバージョンの .NET Framework を対象にしたプロジェクトまたはアセンブリを参照するアプリケーションを作成できます。 たとえば、.NET Framework 4 Client Profile を対象とするアプリケーションを作成し、そのアプリケーションで .NET Framework Version 2.0 を対象とするアセンブリを参照できます。 以前のバージョンの .NET Framework を対象とするプロジェクトを作成した場合、そのプロジェクトでは、.NET Framework 4 Client Profile または .NET Framework Version 4 を対象とするプロジェクトまたはアセンブリを参照することはできません。

詳細については、「対象となる特定の .NET Framework のバージョンまたはプロファイルの指定」を参照してください。

プロジェクト間参照とファイル参照

ファイル参照とは、アセンブリへの直接参照であり、[参照の追加] ダイアログ ボックスの [参照] タブを使用して作成します。 プロジェクト間参照とは、アセンブリを格納するプロジェクトへの参照であり、これらは [参照の追加] ダイアログ ボックスの [プロジェクト] タブを使用して作成します。

プロジェクト間参照の利点は、ビルド システム内のプロジェクト間に依存関係が作成されることです。 このため、参照元のプロジェクトの前回のビルド以降に依存プロジェクトが変更されていると、依存プロジェクトのビルドが行われます。 ファイル参照ではビルド依存関係が作成されないため、依存プロジェクトをビルドせずに参照元のプロジェクトをビルドできます。したがって、参照が古くなる可能性があります。 つまり、プロジェクトから、同じプロジェクトの以前にビルドされたバージョンが参照される場合があります。 その結果、bin ディレクトリ内に 1 つの DLL の複数のバージョンが求められる場合がありますが、これを実現するのは不可能です。 この矛盾が生じた場合は、"警告 : プロジェクト 'project' の依存関係 'file' は、参照 'file.' を上書きするため、実行ディレクトリにコピーできません。" などのメッセージが表示されます。

コンパイル エラーが発生する可能性があるため、同じソリューション内の他のプロジェクトの出力に対するファイル参照は追加しないでください。 代わりに、[参照の追加] ダイアログ ボックスの [プロジェクト] タブを使用して、同じソリューション内でのプロジェクト間参照を作成します。 そうすることによってプロジェクトに作成したクラス ライブラリに対する管理性が向上し、チーム開発が容易になります。 詳細については、「壊れた参照のトラブルシューティング」および「方法 : プロジェクトの依存関係を作成および削除する」を参照してください。

注意

Visual Studio 2010 では、あるプロジェクトが対象とする .NET Framework のバージョンが Version 4 で、他のプロジェクトが対象とする .NET Framework が Version 2、3.0、または 3.5 である場合、プロジェクト参照ではなくファイル参照が作成されます。

Web 参照

[Web 参照の追加] ダイアログ ボックスを使用して Web 参照を追加することもできます。 詳細については、「方法 : リモート Web 参照を追加および削除する」を参照してください。

参照

処理手順

壊れた参照のトラブルシューティング

方法: Visual Studio で参照を追加または削除する

その他の技術情報

名前空間およびコンポーネントの参照

参照の管理

アセンブリを使用したプログラミング