方法: 参照マネージャーを使用して参照を追加または削除するHow to: Add or Remove References By Using the Reference Manager

[参照マネージャー] ダイアログ ボックスを使って、Microsoft または別の企業が開発したコンポーネントへの参照を追加し、管理することができます。You can use the Reference Manager dialog box to add and manage references to components that you, Microsoft, or another company developed. ユニバーサル Windows アプリを開発している場合、プロジェクトはすべての正しい Windows SDK DLL を自動的に参照します。If you're developing a Universal Windows app, your project automatically references all of the correct Windows SDK DLLs. .NET アプリケーションを開発している場合、プロジェクトは mscorlib.dll を自動的に参照します。If you are developing a .NET application, your project automatically references mscorlib.dll. 一部の .NET API は、手動で追加する必要があるコンポーネントで公開されます。Some .NET APIs are exposed in components that you have to add manually. COM コンポーネントまたはカスタム コンポーネントへの参照は、手動で追加する必要があります。References to COM components or custom components have to be added manually.

参照の追加と削除Adding and Removing a Reference

参照を追加するにはTo Add a Reference

  1. ソリューション エクスプローラーで、[参照] ノードを右クリックし、[参照の追加] を選びます。In Solution Explorer, right-click on the References node and choose Add Reference.

  2. 追加する参照を指定した後、[OK] ボタンを選びます。Specify the references to add, and then choose the OK button.

    [参照マネージャー] は、使用可能な参照を開いてグループごとに表示します。Reference Manager opens and lists the available references by group. プロジェクトの種類に基づいて、次のグループのうちどれが表示されるかが決まります。The project type determines which of the following groups appear:

  • アセンブリ - Framework と拡張機能の各サブグループが含まれます。Assemblies, with the Framework and Extensions subgroups.

  • ソリューション - プロジェクト サブグループが含まれます。Solution, with the Projects subgroup.

  • Windows - コアと拡張機能の各サブグループが含まれます。Windows, with the Core and Extensions subgroups. [オブジェクト ブラウザー] を使って Windows SDK または拡張 SDK 内の参照を探索できます。You can explore the references in the Windows SDK or extension SDKs by using the Object Browser.

  • 最近使用したサブグループを参照します。Browse, with the Recent subgroup.

[アセンブリ] タブAssemblies tab

[アセンブリ] タブには、参照に使うことができるすべての .NET Framework アセンブリが一覧表示されます。The Assemblies tab lists all .NET Framework assemblies that are available for referencing. グローバル アセンブリ キャッシュ (GAC) 内のアセンブリは実行時環境の一部であるため、[アセンブリ] タブでは GAC からのアセンブリはどれもリスト表示されません。The Assemblies tab doesn't list any assemblies from the global assembly cache (GAC) because assemblies in the GAC are part of the run-time environment. GAC に登録されているアセンブリへの参照を含むアプリケーションを配置またはコピーした場合は、[ローカル コピー] の設定とはかかわりなく、そのアセンブリがアプリケーションと共に配置またはコピーされることはありません。If you deploy or copy an application that contains a reference to an assembly that's registered in the GAC, the assembly won't be deployed or copied with the application, regardless of the Copy Local setting. 詳細については、「プロジェクト内の参照の管理」を参照してください。For more information, see Managing references in a project.

EnvDTE 名前空間 (EnvDTE、EnvDTE80、EnvDTE90、EnvDTE90a、または EnvDTE100) に手動で参照を追加するときは、[プロパティ] ウィンドウで参照の [相互運用型の埋め込み] プロパティを False に設定します。When you manually add a reference to any of the EnvDTE namespaces (EnvDTE, EnvDTE80, EnvDTE90, EnvDTE90a, or EnvDTE100), set the Embed Interop Types property of the reference to False in the Properties window. このプロパティを True に設定すると、埋め込むことができない EnvDTE プロパティが原因でビルドの問題が発生する可能性があります。Setting this property to True can cause build issues because of certain EnvDTE properties that can't be embedded.

すべてのデスクトップ プロジェクトには、mscorlib への暗黙的な参照が含まれます。All desktop projects contain an implicit reference to mscorlib. Visual BasicVisual Basic プロジェクトには、Microsoft.VisualBasic への暗黙的な参照が含まれます。 projects contain an implicit reference to Microsoft.VisualBasic. Visual Studio 2012Visual Studio 2012 では、System.Core が参照のリストから削除された場合でも、すべてのプロジェクトに System.Core への暗黙的な参照が含まれます。In Visual Studio 2012Visual Studio 2012, all projects contain an implicit reference to System.Core, even if it's removed from the list of references.

プロジェクトの種類がアセンブリをサポートしていない場合は、[参照マネージャー] ダイアログ ボックスの中に [アセンブリ] タブが表示されません。If a project type doesn't support Assemblies, the tab won't appear in the Reference Manager dialog box.

[アセンブリ] タブの中には、次の 2 つのサブタブがあります。The Assemblies tab consists of two sub-tabs:

  1. [Framework] には、対象の Framework を形成するすべてのアセンブリが一覧表示されます。Framework lists all assemblies that constitute the targeted Framework.

    • アドバタイズされたアセンブリは [Full Framework] の中にあり、対象とする Framework のプロファイルをプロジェクトが対象にしている場合は、それらのアセンブリは [Framework] 一覧で列挙されます。Advertised assemblies are in the Full Framework and enumerated in the Framework list when your project targets a Profile of the targeted Framework. アドバタイズされたアセンブリは淡色表示され、プロジェクトの対象である Framework プロファイルの中に存在するアセンブリとは区別されます。Advertised assemblies are grey to differentiate them from the assemblies that exist in the targeted Framework profile of the project. たとえば、プロジェクトが .NET Framework 4 Client を対象としている場合は、[Framework] 一覧には .NET Framework 4 からアドバタイズされたアセンブリが表示されます。For example, if a project targets .NET Framework 4 Client, the Framework list shows advertised assemblies from .NET Framework 4. アドバタイズされたアセンブリをユーザーが追加した場合は、[参照マネージャー] ダイアログ ボックスを閉じた後、プロジェクトが .NET Framework 4 を対象として再指定し、アドバタイズされたアセンブリが追加されることがユーザーに対して通知されます。When a user adds an advertised assembly, the user is notified that, after the Reference Manager dialog box is closed, the project will be retargeted to the .NET Framework 4 and the advertised assembly will be added.

    • Windows 8.x ストアWindows 8.x Store アプリケーションを対象とするプロジェクトには、プロジェクトを作成した時点の既定として、対象の Windows 8.x アプリ用 .NET.NET for Windows 8.x apps 内にあるすべてのアセンブリへの参照が含まれています。Projects for Windows 8.x ストアWindows 8.x Store apps contain references to all of the assemblies in the targeted Windows 8.x アプリ用 .NET.NET for Windows 8.x apps by default on project creation. マネージ プロジェクトでは、ソリューション エクスプローラー内の [参照設定] フォルダーの下にある 1 つの読み取り専用ノードが、Framework 全体に対する参照を示します。In managed projects, a read-only node under the References folder in Solution Explorer indicates the reference to the entire Framework. したがって、[Framework] タブでは、Framework からのどのアセンブリも列挙されず、代わりに次のメッセージが表示されます。"すべての Framework アセンブリが既に参照されています。Accordingly, the Framework tab won't enumerate any of the assemblies from the Framework and instead display the following message: "All of the Framework assemblies are already referenced. オブジェクト ブラウザーを使用して Framework 内の参照を調べてください。"Please use the Object Browser to explore the references in the Framework." デスクトップ プロジェクトの場合は、対象とする Framework からのアセンブリが [Framework] タブで列挙され、アプリケーションが必要とする参照をユーザーが追加する必要があります。For desktop projects, the Framework tab enumerates assemblies from the targeted Framework, and the user must add the references that the application requires.

  2. [拡張機能] には、対象の Framework を拡張するためにコンポーネントおよびコントロールを扱う外部販売元が開発したすべてのアセンブリの一覧が表示されます。Extensions lists all assemblies that external vendors of components and controls have developed to extend the targeted Framework. ユーザー アプリケーションの目的によっては、これらのアセンブリが必要になることがあります。Depending on the purpose of the user application, it might need these assemblies.

    • 次の場所に登録されているアセンブリを列挙することによって、拡張機能が設定されます。Extensions is populated by enumerating the assemblies that are registered in the following locations:

      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\ の下に登録されているアセンブリを列挙します。For example, if a project targets the .NET Framework 4 on a 32-bit machine, Extensions will enumerate assemblies that are registered under \Microsoft\.NETFramework\v4.0\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.5\AssemblyFoldersEx\, \Microsoft\.NETFramework\v3.0\AssemblyFoldersEx\, and \Microsoft\.NETFramework\v2.0\AssemblyFoldersEx\.

    プロジェクトの .NET Framework.NET Framework バージョンによっては、一部のコンポーネントが一覧に表示されないことがあります。Some components in the list may not be shown, depending on the .NET Framework.NET Framework version of your project. これは、次のような条件で発生します。This can occur under the following conditions:

  • 最新バージョンの .NET Framework を使用するコンポーネントは、旧バージョンの .NET Framework を対象とするプロジェクトとは互換性がありません。A component that uses a recent version of the .NET Framework is incompatible with a project that targets an earlier version of the .NET Framework.

    プロジェクトの対象となる .NET Framework のバージョンを変更する方法については、「方法: .NET Framework のバージョンをターゲットにする」をご覧ください。For information about how to change the target .NET Framework version for a project, see How to: Target a Version of the .NET Framework.

  • .NET Framework 4.NET Framework 4 を使用するコンポーネントは、.NET Framework 4.5.NET Framework 4.5 を対象とするプロジェクトと互換性がありません。A component that uses .NET Framework 4.NET Framework 4 is incompatible with a project that targets the .NET Framework 4.5.NET Framework 4.5.

    新しいアプリケーションの作成時に、いくつかのプロジェクトが既定で .NET Framework 4.5.NET Framework 4.5 を対象とするように設定されます。When you create a new application, some projects target the .NET Framework 4.5.NET Framework 4.5 by default.

  • コンパイル エラーが発生する可能性があるため、同じソリューション内の他のプロジェクトの出力に対するファイル参照は追加しないでください。You should avoid adding file references to outputs of another project in the same solution, because doing this may cause compilation errors. 代わりに、[参照の追加] ダイアログ ボックスの [プロジェクト] タブを使ってプロジェクト間参照を作成します。Instead, use the Projects tab of the Add Reference dialog box to create project-to-project references. そうすることによってプロジェクトで作成するクラス ライブラリを管理する機能が向上し、チーム開発が簡単になります。This makes team development easier by enabling better management of the class libraries you create in your projects. 詳しくは、「壊れた参照のトラブルシューティング」をご覧ください。For more information, see Troubleshooting Broken References.

  • 注意

    Visual Studio 2015 以降では、一方のプロジェクトが対象とする .NET Framework のバージョンが Version 4.5 以降で、他方のプロジェクトが対象とするバージョンが Version 2、3、3.5、または 4.0 である場合、プロジェクト参照ではなくファイル参照が作成されます。In Visual Studio 2015 or later, a file reference instead of a project reference is created if the target version of the .NET Framework of one project is version 4.5 or later, and the target version of the other project is version 2, 3, 3.5, or 4.0.

[参照の追加] ダイアログ ボックスにアセンブリを表示するにはTo display an assembly in the Add Reference dialog box

  • アセンブリを次の場所のいずれかに移動またはコピーします。Move or copy the assembly to one of the following locations:

    • 現在のプロジェクト ディレクトリ。The current project directory. ここにあるアセンブリは、 [参照] タブに表示されます。(You can find these assemblies by using the Browse tab.)

    • 同じソリューション内のその他のプロジェクト ディレクトリ。Other project directories in the same solution. ここにあるアセンブリは、[プロジェクト] タブに表示されます。(You can find these assemblies by using the Projects tab.)

      - または- or -

  • 表示するアセンブリの場所を指定するレジストリ キーを設定します。Set a registry key that specifies the location of assemblies to display:

    32 ビット オペレーティング システムでは、次のいずれかのレジストリ キーを追加します。For a 32-bit operating system, add one of the following registry keys.

    • [HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_CURRENT_USER\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

      64 ビット オペレーティング システムでは、32 ビットのレジストリ ハイブで次のいずれかのレジストリ キーを追加します。For a 64-bit operating system, add one of the following registry keys in a 32-bit registry hive.

    • [HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

    • [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\VersionMinimum\AssemblyFoldersEx\MyAssemblies]@="AssemblyLocation"

      VersionMinimum は、適用される .NET Framework の最小バージョンです。VersionMinimum is the lowest .NET Framework version that applies. VersionMinimum が v3.0 の場合、AssemblyFoldersEx で指定したフォルダーは、.NET Framework 3.0 以降を対象にしたプロジェクトに適用されます。If VersionMinimum is v3.0, folders specified in AssemblyFoldersEx apply to projects that target .NET Framework 3.0 and later.

      AssemblyLocation は、C:\MyAssemblies\ など、[参照の追加] ダイアログ ボックスに表示されるアセンブリのディレクトリです。AssemblyLocation is the directory of the assemblies that you want to appear in the Add Reference dialog box, for example, C:\MyAssemblies\.

      HKEY_LOCAL_MACHINE ノードにレジストリ キーを作成すると、すべてのユーザーが特定の場所にあるアセンブリを [参照の追加] ダイアログ ボックスに表示できるようになります。Creating the registry key under the HKEY_LOCAL_MACHINE node allows all users to see the assemblies in the specified location in the Add Reference dialog box. HKEY_CURRENT_USER ノードにレジストリ キーを作成すると、現在のユーザーの設定にのみ影響します。Creating the registry key under the HKEY_CURRENT_USER node affects only the setting for the current user.

      [参照の追加] ダイアログ ボックスを再度開きます。Open the Add Reference dialog box again. アセンブリが [.NET] タブに表示されます。表示されない場合は、指定した AssemblyLocation ディレクトリにアセンブリが配置されていることを確認し、Visual Studio を再起動して、もう一度実行してみてください。The assemblies should appear on the .NET tab. If they do not, make sure that the assemblies are located in the specified AssemblyLocation directory, restart Visual Studio, and try again.

[COM] タブCOM tab

[COM] タブには、参照できるすべての COM コンポーネントの一覧が表示されます。The COM tab lists all COM components that are available for referencing. 内部マニフェストを含む登録済みの COM DLL に参照を追加する場合は、その DLL の登録をまず解除してください。If you want to add a reference to a registered COM DLL that contains an internal manifest, unregister the DLL first. そうしない場合は、Visual Studio は、アセンブリ参照をネイティブ DLL ではなく、ActiveX コントロールとして追加します。Otherwise, Visual Studio adds the assembly reference as an ActiveX Control instead of as a native DLL.

プロジェクトの種類が COM をサポートしていない場合は、[参照マネージャー] ダイアログ ボックスの中に [COM] タブが表示されません。If a project type doesn't support COM, the tab won't appear in the Reference Manager dialog box.

[ソリューション] タブSolution tab

[ソリューション] タブ内の [プロジェクト] サブタブには、現在のソリューション内に存在し互換性のあるすべてのプロジェクトが表示されます。The Solution tab lists all compatible projects within the current solution, in the Projects sub-tab.

プロジェクトは、異なるバージョンの .NET Framework を対象とする別のプロジェクトを参照できます。A project can reference another project that targets a different version of the .NET Framework. たとえば、.NET Framework 4.NET Framework 4 を対象とするプロジェクトを作成し、その中で、.NET Framework 2 を想定してビルドされたアセンブリを参照することができます。For example, you could create a project that targets the .NET Framework 4.NET Framework 4 but that references an assembly that's been built for the .NET Framework 2. ただし、.NET Framework 2 プロジェクトから、.NET Framework 4.NET Framework 4 プロジェクトを参照することはできません。However, the .NET Framework 2 project can't reference a .NET Framework 4.NET Framework 4 project. 詳細については、「対象となる特定の .NET Framework のバージョンの指定」を参照してください。For more information, see Targeting a Specific .NET Framework Version.

.NET Framework 4.NET Framework 4 を対象とするプロジェクトは、.NET Framework 4 Client Profile.NET Framework 4 Client Profile を対象とするプロジェクトと互換性がありません。A project that targets the .NET Framework 4.NET Framework 4 is incompatible with a project that targets the .NET Framework 4 Client Profile.NET Framework 4 Client Profile.

Visual Studio 2012Visual Studio 2012で、1 つのプロジェクトが .NET Framework 4 を対象とし、別のプロジェクトが旧バージョンを対象としている場合は、プロジェクト参照ではなくファイル参照が生成されます。In Visual Studio 2012Visual Studio 2012, a file reference instead of a project reference is created if one project targets the .NET Framework 4 and another project targets an earlier version.

Windows 8.x アプリ用 .NET.NET for Windows 8.x apps を対象とするプロジェクトは、.NET Framework を対象とするプロジェクトに対するプロジェクト参照を追加できません。逆も同じです。A project that targets the Windows 8.x アプリ用 .NET.NET for Windows 8.x apps can't add a project reference to a project that targets the .NET Framework and vice versa.

[Windows] タブWindows tab

[Windows] タブには、Windows オペレーティング システムを実行しているプラットフォームに固有であるすべての SDK が一覧表示されます。The Windows tab lists all SDKs that are specific to platforms on which Windows operating systems run.

Visual Studio 内で、次のような 2 とおりの方法で WinMD ファイルを生成できます。You can generate a WinMD file in Visual Studio in two ways:

  • Windows 8.x ストアWindows 8.x Store アプリケーションのマネージ プロジェクト: Windows 8.x ストアWindows 8.x Store アプリ プロジェクトは、[プロジェクトのプロパティ | 出力の種類 = WinMD ファイル] に設定することにより、WinMD バイナリを出力できます。Windows 8.x ストアWindows 8.x Store app managed projects: Windows 8.x ストアWindows 8.x Store app projects can output WinMD binaries by setting Project Properties | Output Type = WinMD File. WinMD のファイル名はその中に存在するすべての名前空間に対するスーパーセットの名前空間である必要があります。The WinMD filename must be the superset namespace of all the namespaces that exist within it. たとえば、1 つのプロジェクトが名前空間 A.B と A.B.C で形成されている場合は、出力される WinMD で使用可能な名前は A.winmd と A.B.winmd です。For example, if a project consists of namespaces A.B and A.B.C, the possible names for its outputted WinMD are A.winmd and A.B.winmd. ユーザーが、[プロジェクトのプロパティ | アセンブリ名] または [プロジェクトのプロパティ | 名前空間] に、プロジェクト内の一連の名前空間から分離されている値を入力した場合や、プロジェクト内に存在する名前空間に対するスーパーセットの名前空間が存在しない場合は、次のようなビルドの警告が生成されます。'A.winmd' は、このアセンブリに有効な winmd ファイル名ではありません。If a user enters a Project Properties | Assembly Name or Project Properties | Namespace value that's disjoint from the set of namespaces in the project or there is no superset namespace within a project, a build warning is generated: 'A.winmd' isn't a valid .winmd file name for this assembly. Windows メタデータ ファイル内のすべての型は、ファイル名で指定される名前空間のサブ名前空間に存在する必要があります。All types within a Windows Metadata file must exist in a sub namespace of the file name. このようなサブ名前空間に存在しない型は、ランタイムに見つかりません。Types that don't exist in a sub namespace of the file name won't be able to be located at runtime. このアセンブリでは、ファイル名として使用できる最も小さい共通の名前空間は 'CSWSClassLibrary1' です。In this assembly, the smallest common namespace is 'CSWSClassLibrary1'. デスクトップの Visual Basic プロジェクトまたは Visual C# プロジェクトでは、Windows 8Windows 8 SDK を使用して生成される WinMD のみを使用できます。このような WinMD を、ファースト パーティ WinMD と呼びます。また、これらのプロジェクトでは WinMD を生成できません。A desktop Visual Basic or Visual C# project can only consume WinMDs that are generated by using the Windows 8Windows 8 SDKs, which are known as first-party WinMDs, and can't generate WinMDs.

  • Windows 8.x ストアWindows 8.x Store アプリケーションのネイティブ プロジェクト: ネイティブ WinMD ファイルは、メタデータのみで構成されます。Windows 8.x ストアWindows 8.x Store app native projects: A native WinMD file consists of only metadata. その実装は、別の DLL ファイル内に存在します。Its implementation exists in a separate DLL file. [新しいプロジェクト] ダイアログ ボックス内で Windows ランタイム構成プロジェクト テンプレートを選ぶか、空のプロジェクトから作業を開始し、WinMD ファイルを生成するようにプロジェクトのプロパティを変更することによって、ネイティブ バイナリを生成できます。One can produce native binaries by choosing the Windows Runtime Component project template in the New Project dialog box or by starting from a blank project and modifying the project properties to generate a WinMD file. プロジェクトが、分離された複数の名前空間で形成されている場合は、ユーザーがそれらの名前空間を結合するか、MSMerge ツールを実行することを求めるビルド エラーが表示されます。If the project consists of disjoint namespaces, a build error will tell the user to combine their namespaces or run the MSMerge tool.

    [Windows] タブの中には、次の 2 つのサブグループがあります。The Windows tab consists of two subgroups.

[コア] サブグループCore Subgroup

[コア] サブグループには、対象となる Windows のバージョンに対応する SDK の中にある (Windows ランタイム要素に対応する) すべての WinMD が一覧表示されます。The Core subgroup lists all of the WinMDs (for Windows Runtime elements) in the SDK for the targeted version of Windows.

Windows 8.x ストアWindows 8.x Store アプリケーション プロジェクトには、プロジェクトを作成した時点の既定として、Windows 8Windows 8 内にあるすべての WinMD への参照が含まれています。 app projects contain references to all of the WinMDs in the Windows 8Windows 8 SDK by default on project creation. マネージ プロジェクトでは、ソリューション エクスプローラーの [参照] フォルダーの下にある 1 つの読み取り専用ノードが、Windows 8Windows 8 SDK 全体に対する参照を示します。In managed projects, a read-only node under the References folder in Solution Explorer indicates the reference to the entire Windows 8Windows 8 SDK. したがって、[参照マネージャー] の [コア] サブグループでは、Windows 8Windows 8 SDK からのアセンブリのいずれも列挙されず、代わりに次のメッセージが表示されます。"The Windows SDK is already referenced. (Windows SDK が既に参照されています。)Accordingly, the Core subgroup in the Reference Manager won't enumerate any of the assemblies from the Windows 8Windows 8 SDK and instead displays a message: "The Windows SDK is already referenced. Please use the Object Browser to explore the references in the Windows SDK. (オブジェクト ブラウザーを使用して Windows SDK 内の参照を調べてください。)"Please use the Object Browser to explore the references in the Windows SDK."

デスクトップ プロジェクトでは、[コア] サブグループは既定では表示されません。In the desktop projects, the Core subgroup doesn't appear by default. Windows ランタイムを追加するために、プロジェクト ノードのショートカット メニューを開き、[プロジェクトのアンロード] をクリックし、次のスニペットを追加してから、プロジェクトをもう一度開きます (プロジェクト ノードで、[プロジェクトの再読み込み] をクリックします)。You can add the Windows Runtime by opening the shortcut menu for the project node, choosing Unload Project, adding the following snippet, and re-opening the project (on the project node, choose Reload Project). [参照マネージャー] ダイアログ ボックスを開くと、[コア] サブグループが表示されます。When you invoke the Reference Manager dialog box, the Core subgroup appears.

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

このサブグループの [Windows] チェック ボックスがオンになっていることを確認します。Make sure to select the Windows check box on this subgroup. その後は、Windows ランタイム要素を使用できます。You should then be able to use Windows Runtime elements. ただし、System.Runtime を追加する必要もあります。そこで、Windows ランタイム ライブラリ全体で使用される、IEnumerable などの標準のクラスおよびインターフェイスが Windows ランタイムによって定義されます。However, you'll also want to add System.Runtime, in which the Windows Runtime defines some standard classes and interfaces, such as IEnumerable, that are used throughout the Windows Runtime libraries. System.Runtime を追加する方法については、「マネージ デスクトップ アプリと Windows ランタイム」をご覧ください。For information about how to add System.Runtime, see Managed desktop apps and Windows Runtime.

[拡張機能] サブグループExtensions Subgroup

[拡張機能] で、対象の Windows プラットフォームを拡張するユーザー SDK が一覧表示されます。Extensions lists the user SDKs that extend the targeted Windows platform. Windows 8.x ストアWindows 8.x Store アプリケーション プロジェクトの場合のみ、このタブが表示されます。This tab appears for Windows 8.x ストアWindows 8.x Store app projects only. デスクトップ プロジェクトで使用できるのは、ファースト パーティの .winmd ファイルのみであるため、このタブは表示されません。Desktop projects won't show this tab because they can consume only first-party .winmd files.

SDK は、Visual Studio が単一のコンポーネントとして取り扱うファイルのコレクションです。An SDK is a collection of files that Visual Studio treats as a single component. [拡張機能] タブで、[参照マネージャー] ダイアログ ボックスを開いたプロジェクトに対して適用される複数の SDK は単一エントリとして表示されます。In the Extensions tab, SDKs that apply to the project from which the Reference Manager dialog box was invoked are listed as single entries. プロジェクトに追加した場合は、SDK のすべての内容が Visual Studio によって使用されます。その結果、IntelliSense、ツールボックス、デザイナー、オブジェクト ブラウザー、ビルド、配置、デバッグ、およびパッケージ化で SDK の内容を活用するために、ユーザーが追加のアクションを実行する必要がなくなります。When added to a project, all of the SDK content is consumed by Visual Studio such that the user doesn't need to take any further actions to leverage the SDK contents in IntelliSense, toolbox, designers, Object Browser, build, deployment, debugging, and packaging. [拡張機能] タブに SDK を表示する方法については、「Creating a Software Development Kit」(ソフトウェア開発キットの作成) を参照してください。For information about how to display your SDK in the Extensions tab, see Creating a Software Development Kit.

注意

別の SDK に依存する SDK をプロジェクトが参照する場合は、ユーザーが 2 番目の SDK への参照を手動で追加しない限り、Visual Studio は 2 番目の SDK を使用しません。If a project references an SDK that depends on another SDK, Visual Studio won't consume the second SDK unless the user manually adds a reference to the second SDK. ユーザーが [拡張機能] タブでいずれかの SDK を選ぶと、[参照マネージャー] ダイアログ ボックスで SDK の名前とバージョンが一覧表示されることに加えて、詳細ペインであらゆる依存先 SDK の名前も一覧表示され、SDK の依存関係を識別できるようになります。When a user chooses an SDK on the Extensions tab, the Reference Manager dialog box helps the user identify SDK dependencies by listing not only the name and version of the SDK but also the name of any SDK dependencies in the details pane. ユーザーが依存関係に気付かず、SDK のみを追加した場合は、依存関係を追加することを要求するメッセージが MSBuild によって表示されます。If a user doesn't notice the dependencies and only adds that SDK, MSBuild will prompt the user to add the dependencies.

プロジェクトの種類が [拡張機能] をサポートしていない場合は、[参照マネージャー] ダイアログ ボックスの中に [拡張機能] タブが表示されません。If a project type doesn't support Extensions, the tab doesn't appear in the Reference Manager dialog box.

[参照] ボタンBrowse button

[参照] ボタンを使って、ファイル システム内のコンポーネントを参照できます。You can use the Browse button to browse for a component in the file system.

プロジェクトは、異なるバージョンの .NET Framework を対象とするコンポーネントを参照できます。A project can reference a component that targets a different version of the .NET Framework. たとえば、.NET Framework 4 Client Profile を対象とするアプリケーションを作成し、その中で、.NET Framework 2 を対象とするコンポーネントを参照することもできます。For example, you could create an application that targets the .NET Framework 4 Client Profile, which references a component that targets the .NET Framework 2. 詳細については、「対象となる特定の .NET Framework のバージョンの指定」を参照してください。For more information, see Targeting a Specific .NET Framework Version.

同じソリューション内にある別のプロジェクトの出力に対するファイル参照を追加しないでください。この方針を使用すると、コンパイル エラーが発生する可能性があります。You should avoid adding file references to outputs of another project in the same solution, because this tactic may cause compilation errors. 代わりに、[参照マネージャー] ダイアログ ボックスの [ソリューション] タブを使ってプロジェクト間参照を作成します。Instead, use the Solution tab of the Reference Manager dialog box to create project-to-project references. この方針を使用すると、プロジェクト内で作成するクラス ライブラリをより適切に管理でき、チーム開発が簡単になります。This tactic makes team development easier by enabling better management of the class libraries that you create in your projects. 詳しくは、「壊れた参照のトラブルシューティング」をご覧ください。For more information, see Troubleshooting Broken References.

SDK を参照してプロジェクトに追加することはできません。You can't browse to an SDK and add it to your project. ファイル (たとえば、アセンブリまたは .winmd) のみを参照してプロジェクトに追加することができます。You can only browse to a file (for example, an assembly or .winmd) and add it to your project.

WinMD に対してファイル参照を行う場合に予期されるレイアウトは、FileName.winmd、FileName.dll、および FileName.pri というすべてのファイルが並行して配置された状態です。When doing a file reference to a WinMD, the expected layout is that the FileName.winmd, FileName.dll, and FileName.pri files are all placed alongside each other. 次のシナリオで WinMD を参照する場合は、不完全なファイル セットがプロジェクトの出力ディレクトリにコピーされるため、ビルド エラーとランタイム エラーが発生します。If you reference a WinMD in the following scenarios, an incomplete set of files will be copied into the project output directory and, consequently, build and runtime failures will occur.

  • ネイティブ コンポーネント: ネイティブ プロジェクトは、分離された名前空間ごとに 1 つの WinMD を作成し、実装全体を含む 1 つの DLL を作成します。Native component: a native project will create one WinMD for each disjoint set of namespaces and one DLL that consists of the implementation. 各 WinMD は、共通点のない名前になります。The WinMDs will have disparate names. このネイティブ コンポーネント ファイルを参照するときに、MSBuild は、共通点のない名前を付けられた複数の WinMD が 1 つのコンポーネントを形成することを認識しません。When referencing this native component file, MSBuild won't recognize that the dissimilarly named WinMDs make one component. その結果、同じ名前を付けられた FileName.dll と FileName.winmd のみがコピーされ、ランタイム エラーが発生します。Consequently, only the identically named FileName.dll and FileName.winmd will be copied, and runtime errors will occur. この問題を回避するには、拡張機能 SDK を作成します。To work around this issue, create an Extension SDK. 詳しくは、「Creating a Software Development Kit」(ソフトウェア開発キットの作成) をご覧ください。For more information, see Creating a Software Development Kit.

  • コントロールの使用: XAML コントロールは、少なくとも FileName.winmd、FileName.dll、FileName.pri、XamlName.xaml、および ImageName.jpg で構成されます。Consuming controls: at a minimum, a XAML control consists of a FileName.winmd, FileName.dll, FileName.pri, XamlName.xaml, and an ImageName.jpg. プロジェクトをビルドするときに、ファイル参照に関連付けられたリソース ファイルはプロジェクトの出力ディレクトリにコピーされず、FileName.winmd、FileName.dll、および FileName.pri のみがコピーされます。When the project is built, the resource files that are associated with the file reference won't get copied into the project's output directory, and only FileName.winmd, FileName.dll and FileName.pri will be copied. リソースの XamlName.xaml と ImageName.jpg が見つからないことをユーザーに通知するために、ビルド エラーが記録されます。A build error is logged to inform the user that the resources XamlName.xaml and ImageName.jpg are missing. ビルド、デバッグ、および実行時の動作を成功させるには、ユーザーはプロジェクトの出力ディレクトリにこれらのリソース ファイルを手動でコピーする必要があります。To succeed, the user will have to manually copy these resource files into the project output directory for build and debugging/runtime. この問題を回避するには、「Creating a Software Development Kit」(ソフトウェア開発キットの作成) の手順に従って拡張機能 SDK を作成するか、プロジェクト ファイルを編集して次のプロパティを追加します。To work around this issue, either create an Extension SDK by following the steps in Creating a Software Development Kit or edit the project file to add the following property:

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

    注意

    プロパティを追加した場合は、ビルド速度が遅くなる可能性があります。If you add the property, the build might run slower.

最近使用したファイルRecent

[アセンブリ]、[COM]、[Windows]、[参照] はいずれも [最近使用したファイル] タブをサポートし、このタブではプロジェクトに最近追加されたコンポーネントのリストが列挙されます。Assemblies, COM, Windows, and Browse each support a Recent tab, which enumerates the list of components that were recently added to projects.

[参照マネージャー] ダイアログ ボックス内の検索バーは、現在フォーカスが置かれているタブを対象として動作します。The search bar in the Reference Manager dialog box operates over the tab that's in focus. たとえば、[ソリューション] タブにフォーカスがあるときにユーザーが検索バーに「System」と入力した場合は、"System" という文字列を含むプロジェクト名がソリューションを形成している状況以外では、検索結果が返されません。For example, if a user types "System" in the search bar while the Solution tab is in focus, the search won't return any results unless the solution consists of a project name that contains "System".

関連項目See Also

プロジェクト内の参照の管理Managing references in a project