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

Microsoft、または別の企業が開発したコンポーネントへの参照を追加し、管理に [参照マネージャー] のダイアログ ボックスを使用します。Windows ストア アプリケーションを開発する場合、プロジェクトは自動的に Windows 8 SDK と .NET Framework すべてを参照します。プロジェクトの別の型を作成する場合は、プロジェクトに参照を手動で追加する必要があります。

Caution メモ注意

[参照の追加] のダイアログ ボックスを使用して、他の種類のプロジェクト参照を追加できます。詳細については、「方法: [参照の追加] ダイアログ ボックスを使用して参照を追加または削除する」を参照してください。

参照の追加と削除

プロジェクト参照を追加するには

  1. メニュー バーで、[ファイル][開く] を選択します。

  2. ソリューションに移動するか、投影します。

  3. [ソリューション エクスプローラー] では、参照のノードのショートカット メニューを開き、[参照の追加] を選択します。

  4. [参照マネージャー] のダイアログ ボックスで、追加する参照を指定し、を [OK] のボタンをクリックします。

参照を削除するには、ショートカット メニューを開き、[削除] を選択します。

C ++.の参照を追加するには、

  1. メニュー バーで、[ファイル][開く] を選択します。

  2. ソリューションに移動するか、投影します。

  3. [ソリューション エクスプローラー] で、プロジェクトのノードのショートカット メニューを開き、 [参照] を選択します。

  4. [プロパティ ページ] のダイアログ ボックスで、[新しい参照の追加] のボタンをクリックします。

  5. [参照の追加] のダイアログ ボックスで、追加する参照を指定し、を [OK] のボタンをクリックします。

参照を削除するには、ショートカット メニューを開き、[削除] を選択します。

[参照マネージャー] はグループで使用可能な参照を開き、示します。プロジェクトの種類が表示されます。次のグループが決定します:

  • フレームワークと拡張子のサブグループのアセンブリ。

  • プロジェクトのサブグループのソリューションを提供します。

  • コアおよび拡張子のサブグループの Windows。[オブジェクト ブラウザー] を使用して Windows SDK または拡張機能の SDK リファレンスを参照できます。

  • 最新のサブグループと、参照します。

アセンブリのタブ

[アセンブリ] のタブでは、参照に使用できる .NET Framework のすべてのアセンブリの一覧が表示されます。[アセンブリ] のタブは GAC のアセンブリが実行時環境の一部であるため、グローバル アセンブリ キャッシュからアセンブリ (GAC) を示します。GAC に登録されているアセンブリへの参照を含むアプリケーションを配置またはコピー、アセンブリはローカル コピー]設定にかかわらず、アプリケーションとともに配置されませんし、コピーします。詳細については、プロジェクトの参照" "を参照してください。

手動で EnvDTE 名前空間 (EnvDTE、EnvDTE80、EnvDTE90、EnvDTE90a、またはのいずれか) EnvDTE100 への参照を追加すると、[プロパティ]ウィンドウで false への参照の"相互運用型の埋め込み"プロパティを設定します。このプロパティを設定すると、埋め込むことができない EnvDTE プロパティに対して true にビルドの問題が発生することがあります。

すべてのデスクトップのプロジェクトには、mscorlib への暗黙的な参照が含まれます。Visual Basic のプロジェクトは Microsoft.VisualBasic への暗黙的な参照が含まれます。Visual Studio 2012では、すべてのプロジェクトが参照のリストから削除しても、System.Core の暗黙的な参照が含まれます。

プロジェクトの種類がサポート [参照マネージャー] アセンブリは、タブのダイアログ ボックスに表示されません。

アセンブリのタブ、サブタブの 2 桁で構成されます:

  1. フレームワーク一覧を対象とするフレームワークを構成するすべてのアセンブリ。

    • 指定されたアセンブリは完全なフレームワークに、プロジェクトが対象とするフレームワーク プロファイルを対象とする場合、フレームワーク一覧で列挙されます。指定されたアセンブリが淡色プロジェクトのフレームワークを対象としたプロファイルに存在するアセンブリから型を区別します。たとえば、プロジェクトが .NET Framework 4 のクライアントを対象としている場合、フレームワーク一覧は、.NET Framework 4.の指定されたアセンブリを示しています。ユーザーが指定されたアセンブリを追加すると、ユーザーは [参照マネージャー] のダイアログ ボックスを閉じた後、プロジェクトが .NET Framework 4 に再ターゲットされた、指定されたアセンブリが追加されることが通知されます。

    • Windows ストア の apps のプロジェクトには、プロジェクトの作成対象の Windows ストア アプリ用 .NET でアセンブリへの参照が既定で含まれています。マネージ プロジェクトでは、[ソリューション エクスプローラー] の参照]フォルダーの下のノードは読み取り専用のフレームワーク全体への参照を示します。したがって、フレームワークのタブでは、フレームワークのアセンブリのいずれにも列挙されず、代わりに次のメッセージが表示されます: "フレームワークのアセンブリが既に参照されます。フレームワークの参照を説明するため、オブジェクト ブラウザーを使用してください"。デスクトップのプロジェクトの場合、フレームワークはタブの対象とするフレームワークからアセンブリを列挙し、アプリケーションに必要な参照を追加する必要があります。

  2. 拡張機能では、対象のフレームワークを拡張するためにコンポーネントおよびコントロールの外部販売元が開発したすべてのアセンブリの一覧が表示されます。ユーザー アプリケーションの目的によっては、これらのアセンブリを必要とする場合があります。

    • 拡張子は次の位置に登録されているアセンブリの列挙によって設定されます:

      32-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      64-bit machine:
      HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\[Target Framework Identifier]\v[Target Framework Version]\AssemblyFoldersEx\[UserComponentName]\@default=[Disk location of assemblies]
      And older versions of the [Target Framework Identifier]
      

      たとえば、プロジェクトが 32 ビット コンピューターに .NET Framework 4 を対象とする場合、拡張機能は\Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\、\Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\、\Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\と\Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\の下に登録されているアセンブリを列挙します。

COM に記録します。

COM は、リストを参照するために使用できるすべての COM コンポーネント記録します。内部マニフェストを含む登録済みの COM DLL への参照を追加する場合は、に最初に DLL。それ以外の場合、Visual Studio はネイティブ DLL ではなく、ActiveX コントロールとしてアセンブリ参照を追加します。

プロジェクトの種類で COM をサポートしていない場合、タブは [参照マネージャー] のダイアログ ボックスに表示されません。

ソリューションのタブ

ソリューションのプロジェクトのタブ、サブタブの現在のソリューション内のすべての互換性のあるプロジェクトを示します。

プロジェクトが対象とする .NET Framework の異なるバージョンを別のバージョンを参照できます。たとえば、対象 .NET Framework 4 参照する .NET Framework 2.のビルド アセンブリが、プロジェクトを作成できます。ただし、.NET Framework 2 プロジェクトを .NET Framework 4 のプロジェクトを参照できません。詳細については、「対象となる特定の .NET Framework のバージョンまたはプロファイルの指定」を参照してください。

ターゲットが .NET Framework 4 プロジェクトに互換性のない対象とするプロジェクト .NET Framework 4 Client Profile。

Visual Studio 2012で、プロジェクト参照ではなくファイル参照は 1 種類のプロジェクトが .NET Framework 4 を対象とし、別のプロジェクトが旧バージョンを対象とする場合に生成されます。

ターゲットが Windows ストア アプリ用 .NET .NET Framework を対象とする逆の場合も同じプロジェクトへのプロジェクト参照を追加できないとプロジェクト。

[ウィンドウ]タブ

Windows のタブには、Windows オペレーティング システムの実行プラットフォーム固有のすべての SDK を示します。

2 とおりの方法で Visual Studio の WinMD ファイルを生成できます:

  • Windows ストア アプリケーションのマネージ プロジェクト: Windows ストア アプリケーション プロジェクトは、プロジェクトのプロパティを設定して WinMD の binary を出力できます | 出力の種類 = WinMD ファイル。WinMD のファイル名はその内部にあるすべての名前空間のスーパーセットの名前空間である必要があります。たとえば、プロジェクトが名前空間 A.B と A.B.C で構成される場合、outputted の WinMD できる名前は A.winmd と A.B.winmd です。ユーザーがプロジェクトのプロパティを入力する場合 | アセンブリ名またはプロジェクトのプロパティ | 一部の名前空間の値はプロジェクトの名前空間のセットからはずさないか、そこにプロジェクト内の親セットの名前空間、ビルドの警告が生成されます: A.winmd "" では、このアセンブリに .winmd 有効なファイル名ではありません。Windows のメタデータ ファイル内のすべての型は、ファイル名のサブ名前空間に存在する必要があります。ファイル名のサブ名前空間に存在していない型は、ランタイムとなるできません。このアセンブリには、最小の共通の名前空間は、"" CSWSClassLibrary1 です。デスクトップの Visual Basic または Visual C# プロジェクトでは、最初の人 WinMDs として、Windows 8 SDK を使用して生成される実行 WinMDs のみ認識される、WinMDs を生成できません。

  • Windows ストア アプリケーションのネイティブのプロジェクト: ネイティブの WinMD ファイルにはメタデータだけで構成されます。この実装は別の DLL ファイルにあります。1 つが [新しいプロジェクト] のダイアログ ボックスまたはプロジェクトで、Windows のランタイム構成のプロジェクト テンプレートを選択し、WinMD ファイルを生成するには、プロジェクトのプロパティを変更することによってネイティブ binary を生成できます。プロジェクトの名前空間を構成しますはずして場合は、ビルド エラーはユーザーの名前空間をまとめるか、MSMerge ツールを実行します。

Windows のタブでは、2 種類のサブ タブで構成されます。

Hh708954.collapse_all(ja-jp,VS.110).gifコアのサブグループ

コアのタブには、Windows の対象バージョンのすべての SDK WinMDs (WinRT 要素) を示します。

Windows ストア アプリケーション プロジェクトは、プロジェクトの作成 Windows 8 SDK のすべて WinMDs への参照が既定で含まれています。マネージ プロジェクトでは、[ソリューション エクスプローラー] の参照]フォルダーの下のノードは読み取り専用 Windows 8 の SDK への参照を示します。したがって、参照マネージャーのコアのタブでは Windows 8 SDK のアセンブリのいずれにも列挙せず、代わりにメッセージを表示する: "Windows SDK は、既に参照されます。Windows SDK の参照を説明するため、オブジェクト ブラウザーを使用してください"。

デスクトップのプロジェクトのコアのタブは既定では表示されません。プロジェクト ノードのショートカット メニューの場合は、[プロジェクトのアンロード] を選択し、開いて、Windows のランタイムを追加するには、次のスニペットおよび再開プロジェクトを追加します (プロジェクト ノードで [プロジェクトの再読み込み] を選択します)。[参照マネージャー] のダイアログ ボックスを起動すると、コア タブが表示されます。

  <PropertyGroup>
    <TargetPlatformVersion>8.0</TargetPlatformVersion>
  </PropertyGroup>

このタブのウィンドウのボックスをチェックすることを確認します。WinRT の要素を使用してください。

Hh708954.collapse_all(ja-jp,VS.110).gif拡張機能のサブグループ

拡張機能は、Windows の対象プラットフォームを拡張するユーザー SDK を示します。このタブには Windows ストア アプリケーション プロジェクトの場合のみ表示されます。デスクトップのプロジェクトは、一つ目のグループ .winmd ファイルのみを実装している可能性があるため、このタブを表示しません。

SDK には、Visual Studio が単一のコンポーネントとして処理するファイルのコレクションです。拡張機能のタブで、[参照マネージャー] のダイアログ ボックスを開始したプロジェクトに適用する SDK は単一エントリとして表示されます。プロジェクトに追加した場合、SDK の内容はすべて、Visual Studio によってユーザーが IntelliSense には、ツールボックス、デザイナー、オブジェクト ブラウザー、ビルド、配置、デバッグとパッケージ SDK の内容を利用する追加のアクションを実行する必要がないように実装されます。拡張機能に SDK を表示する方法については、方法: ソフトウェア開発キットを作成するを記録しておきます、" "を参照してください。

[!メモ]

プロジェクトが別の SDK に依存する SDK を参照する場合、Visual Studio は、ユーザーが手動で 2 番目の SDK への参照を追加する 2 番目の SDK は実行されません。ユーザーがタブの [拡張機能] SDK を選択すると、[参照マネージャー] のダイアログ ボックスを表示する SDK の名前とバージョン詳細ペインで、SDK の依存関係の名前だけでなく、列挙し、SDK の依存関係を識別できます。ユーザーが依存関係によってし、その SDK のみを追加する、ユーザーに依存関係を追加するように要求します。

プロジェクトの種類が [拡張機能] をサポートしていない場合、タブは [参照マネージャー] のダイアログ ボックスに表示されません。

[参照] ボタン

ファイル システムのコンポーネントを参照するには [参照] のボタンを使用できます。

プロジェクトは異なるバージョンの .NET Framework を対象とするコンポーネントを参照できます。たとえば、.NET Framework 2.を対象とするコンポーネントを参照する、.NET Framework 4 Client Profile を対象とするアプリケーションを作成できます。詳細については、「対象となる特定の .NET Framework のバージョンまたはプロファイルの指定」を参照してください。

この方法により、コンパイル エラーが発生する可能性があるため、同じソリューション内の他のプロジェクトの出力ファイルへの参照を追加しないでください。代わりに、プロジェクト間参照を作成するために [参照マネージャー] のダイアログ ボックスの [ソリューション] のタブを使用します。この方法は、チーム開発をプロジェクトで作成したクラス ライブラリに対する管理を有効にすることによりも簡単になります。詳細については、「壊れた参照のトラブルシューティング」を参照してください。

SDK を表示し、プロジェクトに追加できません。ファイルにのみ (たとえば、アセンブリまたは .winmd) 表示し、プロジェクトに追加できません。

WinMD へのファイル参照を行うと、予期されるレイアウトは[ファイル名] .winmd が互いに水平に、[ファイル名] .dll および[ファイル名] .pri のすべてのファイル設定されます。次のシナリオで WinMD を参照する場合、不完全なファイル セットがプロジェクトの出力ディレクトリにコピーするため、ビルド、およびランタイム エラーが発生します。

  • ネイティブ コンポーネント: ネイティブ プロジェクトには、各の 1 を表すこと WinMD 名前空間と実装の 1 の DLL のセットを作成します。WinMDs には異なる名前になります。このネイティブ構成ファイルを参照する場合、MSBuild は異なる名前付き WinMDs が 1 のコンポーネントを行うことを認識しません。その結果、同じ名前の[ファイル名] .dll と、[ファイル名] .winmd コピー、ランタイム エラーが発生します。この問題を回避するには、拡張機能の SDK を作成します。詳細については、「方法: ソフトウェア開発キットを作成する」を参照してください。

  • コントロールの実装: 少なくとも、XAML のコントロールは、[ファイル名].winmd、[ファイル名].dll、[ファイル名].pri、[xamlname].xaml、および [imagename].jpg 構成されます。プロジェクトをビルドすると、プロジェクトの出力ディレクトリおよび[ファイル名] .winmd だけにファイル参照とコピーされない、[ファイル名] .dll 関連付けられたおよび[ファイル名] .pri リソース ファイルはコピーされません。ビルド エラーは、リソース [xamlname.xaml] と [imagename].jpg がないことをユーザーに通知するために記録されます。成功するには、ユーザーはビルドとデバッグまたは実行時にプロジェクトの出力ディレクトリにこれらのリソース ファイルを手動でコピーする必要があります。この問題を回避するには、拡張機能の SDK を 方法: ソフトウェア開発キットを作成する の手順に従って作成するか、次のプロパティを追加するには、プロジェクト ファイルを編集する:

    <PropertyGroup>
    <GenerateLibraryOutput>True</GenerateLibraryOutput>
    </PropertyGroup>
    

    [!メモ]

    プロパティを追加する場合は、ビルド後で実行する場合があります。

最近使用したファイル

アセンブリ、COM、Windows では、各サポートをプロジェクトに最近追加されたコンポーネントのリストを列挙する最新のタブ参照します。

検索

[参照マネージャー] のダイアログ ボックスで検索バーにフォーカスがあるタブに動作します。ソリューションが "System" を含むプロジェクト名で構成されている場合、ソリューションのタブにフォーカスがあるときに、たとえば、検索バーの[ユーザー タイプ "システム" は、検索結果を返します。

参照

処理手順

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

概念

プロジェクト参照の管理