プロジェクト参照
更新 : 2007 年 11 月
外部コンポーネントを使用するためにコードを記述する場合は、あらかじめプロジェクトにそのコンポーネントへの参照を追加しておく必要があります。参照は、次の種類のコンポーネントに対して行うことができます。
.NET Framework クラス ライブラリまたはアセンブリ
COM コンポーネント
同じソリューション内のプロジェクトにあるその他のアセンブリまたはクラス ライブラリ
XML Web サービス
XML Web サービス参照の詳細については、「Visual Studio の Web 参照」を参照してください。
Visual Basic メモ : |
---|
Visual Studio でのプロジェクト参照は、Visual Basic 6.0 とは異なる方法で管理されます。詳細については、「プロジェクトの管理 (Visual Basic 6.0 ユーザー向け)」を参照してください。 |
デザイン時の参照の追加
デザイン時にコンポーネントへの参照を追加するには、[参照の追加] ダイアログ ボックス を使用します。
[参照の追加] ダイアログ ボックスに、次の場所にあるアセンブリの一覧が表示されます。
Public Assemblies フォルダ (Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Public Assemblies)。
他のアセンブリをこの Public Assemblies フォルダにコピーした場合は、これらも [参照の追加] ダイアログ ボックスの一覧に表示されます。
参照パスを設定することにより指定したフォルダ。
Visual C# プロジェクトの参照パスを設定する手順は、わずかに異なっています。Visual Basic プロジェクトでは、[参照パス] をクリックして [参照の追加] ダイアログ ボックスを表示します。Visual C# プロジェクトでは、プロジェクト デザイナの [参照パス] ページ (プロジェクト デザイナ) (C#) を使用します。詳細については、「方法 : 参照パスを設定する (C#)」を参照してください。
[参照の追加] ダイアログ ボックスを使用して、一覧にないアセンブリを参照することもできます。GAC (グローバル アセンブリ キャッシュ) は厳密にランタイム環境の一部であるため、そこから参照を追加することはできません。
プロジェクトでアセンブリを参照すると、Visual Studio は次の場所でアセンブリを検索します。
現在のプロジェクト ディレクトリ。ここにあるアセンブリは、[参照] タブに表示されます。
同じソリューション内の他のプロジェクト ディレクトリ。ここにあるアセンブリは、[プロジェクト] タブに表示されます。
Public Assemblies フォルダ (Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Public Assemblies)。ここにあるアセンブリは、[.NET] タブに表示されます。
参照パスを設定することにより指定したフォルダ。参照パスは、[参照パス] ダイアログ ボックス (Visual Basic) または [参照パス] ページ (プロジェクト デザイナ) (C#) を使用して設定できます。
デザイン時に参照を追加する方法の詳細については、「方法 : Visual Studio で参照を追加または削除する (Visual Basic)」を参照してください。
実行時の共有コンポーネントへの参照
実行時には、コンポーネントがプロジェクトの出力パスまたは GAC (グローバル アセンブリ キャッシュ) のどちらかにある必要があります。どちらの場所にも存在しないオブジェクトへの参照がプロジェクトに含まれている場合は、プロジェクトをビルドするときに、その参照をプロジェクトの出力パスにコピーする必要があります。CopyLocal プロパティは、コピーを作成する必要があるかどうかを示します。値が True の場合は、プロジェクトをビルドするときに参照がプロジェクト ディレクトリにコピーされます。値が False の場合は、参照はコピーされません。
GAC に登録されているカスタム コンポーネントへの参照を含むアプリケーションを配置した場合、CopyLocal の設定に関係なく、そのコンポーネントはアプリケーションと共に配置されません。Visual Studio の以前のバージョンでは、参照に CopyLocal プロパティを設定して、アセンブリを確実に配置することができました。現バージョンでは、アセンブリを \Bin フォルダに手動で追加する必要があります。これにより、すべてのカスタム コードを監視下に置いて、見覚えのないカスタム コードを公開するリスクを軽減します。
アセンブリまたはコンポーネントがグローバル アセンブリ キャッシュまたはフレームワーク コンポーネントである場合、既定では、CopyLocal プロパティは False に設定されます。それ以外の場合、値は True に設定されます。プロジェクト間参照は、常に True に設定されます。
プロジェクト間参照とファイル参照
ファイル参照とは、アセンブリへの直接参照であり、[参照の追加] ダイアログ ボックスの [参照] タブを使用して作成します。プロジェクト間参照とは、アセンブリを格納するプロジェクトへの参照であり、これらは [参照の追加] ダイアログ ボックスの [プロジェクト] タブを使用して作成します。
プロジェクト間参照の利点は、ビルド システム内のプロジェクト間に依存関係が作成されることです。このため、参照元のプロジェクトの前回のビルド以降に依存プロジェクトが変更されていると、依存プロジェクトのビルドが行われます。ファイル参照ではビルド依存関係が作成されないため、依存プロジェクトをビルドせずに参照元のプロジェクトをビルドできます。したがって、参照が古くなる可能性があります。つまり、プロジェクトから、同じプロジェクトの以前にビルドされたバージョンが参照される場合があります。その結果、bin ディレクトリ内に 1 つの DLL の複数のバージョンが求められる場合がありますが、これを実現するのは不可能です。この矛盾が生じた場合は、"警告 : プロジェクト 'project' の依存関係 'file' は、参照 'file.' を上書きするため、実行ディレクトリにコピーできません。" などのメッセージが表示されます。
コンパイル エラーが発生する可能性があるため、同じソリューション内の他のプロジェクトの出力に対するファイル参照は追加しないでください。代わりに、[参照の追加] ダイアログ ボックスの [プロジェクト] タブを使用して、同じソリューション内でのプロジェクト間参照を作成します。そうすることによってプロジェクトに作成したクラス ライブラリに対する管理性が向上し、チーム開発が容易になります。詳細については、「壊れた参照のトラブルシューティング」および「方法 : プロジェクトの依存関係を作成および削除する」を参照してください。
Web 参照
[Web 参照の追加] ダイアログ ボックスを使用して、Web 参照を追加することもできます。詳細については、「方法 : リモート Web 参照を追加および削除する」を参照してください。
参照
処理手順
方法 : Visual Studio で参照を追加または削除する (Visual Basic)