プロジェクト参照の管理

外部コンポーネントを使用するコードを記述する前に、プロジェクトを最初にそのコンポーネントへの参照を含める必要があります。参照は、次の種類のコンポーネントに対して行うことができます。

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

  • COM コンポーネント

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

  • XML Web サービス

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

デザイン時の参照の追加

デザイン時に一つ以上の参照を追加するには、プロジェクトの種類がビルド [参照マネージャー] のダイアログ ボックスまたは [参照の追加] のダイアログ ボックスを使用します。プロジェクトの Windows ストア のすべての apps およびそのほかのほとんどの種類の参照マネージャー]ダイアログ ボックスを使用します。詳細については、「方法: 参照マネージャーを使用して参照を追加または削除する」を参照してください。そのほかのいくつかのプロジェクトは [参照の追加] のダイアログ ボックスをサポートします。詳細については、「方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する」を参照してください。

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

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

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

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

デザイン時に参照を追加する方法の詳細については、「方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する」を参照してください。

[!メモ]

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

Visual Studio のすべてのプロジェクトは 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 2.0 を対象とするアセンブリを参照できます。旧バージョンの .NET Framework を対象とするプロジェクトを作成した場合、そのプロジェクトでは、.NET Framework 4 Client Profile または .NET Framework Version 4 を対象とするプロジェクトまたはアセンブリを参照することはできません。

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

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

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

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

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

[!メモ]

プロジェクトの参照ではなくファイル参照は 1 種類のプロジェクトの .NET Framework のバージョンが Version 4.5 で、他のプロジェクトの対象となるのバージョンはバージョン 2、3、3.5、または 4.0 で作成されます。

Web 参照

[Web 参照の追加] ダイアログ ボックスを使用して Web 参照を追加することもできます。詳細については、「How to: Add and Remove Web References」を参照してください。

参照

処理手順

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

方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する

概念

方法: 参照マネージャーを使用して参照を追加または削除する

その他の技術情報

Referencing Namespaces and Components

Managing References

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