拡張 SDK と比較して NuGet を使用した参照の追加Adding References Using NuGet Versus an Extension SDK

Visual Studio を対象とする NuGet 拡張機能、またはソフトウェア開発キット (SDK) を使用して、Visual Studio プロジェクト内で使用するためのパッケージを提供できます。You can provide a package for consumption within Visual Studio projects by using either the NuGet extension to Visual Studio or a software development kit (SDK). このトピックでは 2 つのメカニズムの類似点と相違点を説明し、特定のタスクにとって最善のメカニズムを選択しやすくなります。By describing the similarities and differences between the two mechanisms, this topic can help you choose the best one for your task.

  • NuGet は、オープン ソースのパッケージ管理システムであり、ライブラリをプロジェクトのソリューションに組み込むプロセスを簡略化します。NuGet is an open-source, package-management system that simplifies the process of incorporating libraries into a project solution. 詳細については、NuGet のドキュメントを参照してください。For more information, see the NuGet documentation.

  • SDK は、Visual Studio が単一の参照項目として取り扱うファイルのコレクションです。An SDK is a collection of files that Visual Studio treats as a single reference item. [参照マネージャー] ダイアログ ボックスでは、このダイアログ ボックスを表示した時点で開いていたプロジェクトに関連するすべての SDK が一覧表示されます。The Reference Manager dialog box lists all SDKs that are relevant to the project that's open when you display that dialog box. SDK をプロジェクトに追加すると、IntelliSense、[ツールボックス]、デザイナー、[オブジェクト ブラウザー]、MSBuild、配置、デバッグおよびパッケージの各機能を通じて、その SDK のすべての内容にアクセスできます。When you add an SDK to a project, you can access all of the contents of that SDK through IntelliSense, the Toolbox, designers, the Object Browser, MSBuild, deployment, debugging, and packaging. 詳細については、「Creating a Software Development Kit」 (ソフトウェア開発キットの作成) を参照してください。For more information about SDKs, see Creating a Software Development Kit.

使用するメカニズムの決定Which Mechanism Should I Use?

次の表を使用して、SDK の参照機能と NuGet の参照機能を比較できます。The following table helps you compare the referencing features of an SDK with the referencing features of NuGet.

特性Feature SDK のサポート対象SDK Support SDK に関するメモSDK Notes NuGet のサポート対象NuGet Support NuGet に関するメモNuGet Notes
このメカニズムは、1 つのエンティティを参照し、その結果、すべてのファイルと機能が使用できるようになります。The mechanism references one entity and then all the files and functionality are available. Y [参照マネージャー] ダイアログ ボックスを使用して SDK を追加し、その結果、開発ワークフローの実行中にすべてのファイルと機能が使用できるようになります。You add an SDK by using the Reference Manager dialog box, and all the files and functionality are available during the development workflow. Y
MSBuild は、アセンブリと Windows メタデータ (.winmd) ファイルを自動的に使用します。MSBuild automatically consumes assemblies and Windows metadata (.winmd) files. YY SDK 内の参照は、コンパイラに対して自動的に渡されます。References in the SDK are automatically passed to the compiler. YY
MSBuild は、.h ファイルまたは .lib ファイルを自動的に使用します。MSBuild automatically consumes the .h or .lib files. Y SDKName.props ファイルは、.h ファイルまたは .lib ファイルを自動的に使用するために Visual C++ のディレクトリなどをセットアップする方法を Visual Studio に伝えます。The SDKName.props file tells Visual Studio how to set up the Visual C++ directory, and so forth, for automatic .h or .lib file consumption. NN
MSBuild は、.js ファイルまたは .css ファイルを自動的に使用します。MSBuild automatically consumes the .js or .css files. Y ソリューション エクスプローラーで JavaScript SDK 参照ノードを展開し、個別の .js ファイルまたは .css ファイルを表示した後、それらのファイルをそれぞれのソース ファイルにドラッグすることにより、<source include/> タグを生成できます。In Solution Explorer, you can expand the JavaScript SDK reference node to show individual .js or .css files and then generate <source include/> tags by dragging those files to their source files. SDK は、F5 キーを使用する方法と自動的なパッケージ設定方法をサポートします。The SDK supports F5 and automatic package setup. Y
MSBuild は、[ツールボックス] 内のコントロールを自動的に追加します。MSBuild automatically adds the control in the Toolbox. Y [ツールボックス] は SDK を使用し、指定されたタブの中にコントロールを表示することができます。The Toolbox can consume SDKs and show controls in the tabs that you specify. NN
このメカニズムでは、VSIX (Visual Studio Installer for extensions) をサポートします。The mechanism supports Visual Studio Installer for extensions (VSIX). YY VSIX には、SDK パッケージを作成するための特別なマニフェストとロジックがあります。VSIX has a special manifest and logic to create SDK packages YY VSIX は、別のセットアップ プログラムに埋め込むことができます。The VSIX can be embedded in another setup program.
オブジェクト ブラウザーは、参照を列挙します。The Object Browser enumerates references. Y オブジェクト ブラウザーは SDK 内にある参照の一覧を自動的に取得し、それらを列挙します。The Object Browser automatically gets the list of references in SDKs and enumerates them. NN
ファイルとリンクは、[参照マネージャー] ダイアログ ボックスに自動的に追加されます (ヘルプへのリンクなどが自動的に設定されます)。Files and links automatically get added to the Reference Manager dialog box (help links, and so forth auto populate) Y [参照マネージャー] ダイアログ ボックスでは、SDK が自動的に列挙され、ヘルプへのリンクや SDK の依存関係の一覧も表示されます。The Reference Manager dialog box automatically enumerates SDKs, along with help links and the list of SDK dependencies. NN NuGet では独自の [NuGet パッケージの管理] ダイアログ ボックスが表示されます。NuGet provides its own Manage NuGet Packages dialog box.
このメカニズムでは複数のアーキテクチャがサポートされます。The mechanism supports multiple architectures. YY SDK は、複数の構成で出荷することができます。SDKs can ship multiple configurations. MSBuild は、各プロジェクト構成に適したファイルを使用します。MSBuild consumes the appropriate files for each project configuration. NN
このメカニズムでは複数の構成がサポートされます。The mechanism supports multiple configurations. YY SDK は、複数の構成で出荷することができます。SDKs can ship multiple configurations. プロジェクトのアーキテクチャに基づいて、MSBuild は各プロジェクト アーキテクチャに適したファイルを使用します。Depending on project architecture, MSBuild consumes the appropriate files for each project architecture. NN
このメカニズムでは、"not to copy" (コピーしない) を指定できます。The mechanism can specify "not to copy." YY ファイルを \redist と \designtime どちらのフォルダーにドロップするかに応じて、使用側アプリケーション パッケージにどのファイルをコピーするかを制御できます。Depending on whether files are dropped in the \redist or \designtime folder, you can control which files to copy into the consuming application's package. NN どのファイルをコピーするかを、パッケージ マニフェスト内で宣言します。You declare which files to copy in the package manifest.
内容は、ローカライズされたファイル内に表示されます。Content appears in localized files. YY 設計時の操作を向上させるために、SDK 内にあるローカライズされた XML ドキュメントが自動的に含まれます。Localized XML documents in SDKs are automatically included for a better design-time experience. NN
MSBuild は、SDK の複数バージョンの同時使用をサポートします。MSBuild supports consuming multiple versions of an SDK simultaneously. YY SDK は、複数バージョンの同時使用をサポートします。The SDK supports consuming multiple versions simultaneously. NN これは参照を行いません。This isn't referencing. プロジェクト内で NuGet ファイルの複数のバージョンを一度に使用することはできません。You can't have more than one version of NuGet files in your project at a time.
このメカニズムでは、複数の適切なターゲット フレームワーク、Visual Studio の複数のバージョン、および複数のプロジェクトの種類の指定がサポートされています。The mechanism supports specifying applicable target frameworks, Visual Studio versions, and project types. Y [参照マネージャー] ダイアログ ボックスと [ツールボックス] では、プロジェクトに適用する SDK のみが表示されるため、ユーザーは適切な SDK をより簡単に選択できます。The Reference Manager dialog box and the Toolbox show only the SDKs that apply to a project, so that users can more easily choose the appropriate SDKs. Y (部分的)Y (partial) Pivot は Target Framework です。Pivot is the Target Framework. ユーザー インターフェイスに対してフィルター処理は実行されません。There is no filtering on user interface. インストール時に、エラーが返される可能性があります。At installation time, it might return an error.
このメカニズムでは、ネイティブ WinMD に関する登録情報の指定がサポートされています。The mechanism supports specifying registration info for native WinMDs. YY SDKManifest.xml 内で、.winmd ファイルと .dll ファイル間の関連付けを指定できます。You can specify the correlation between the .winmd file and the .dll file in SDKManifest.xml. NN
このメカニズムでは、他の SDK に対する依存関係の指定がサポートされています。The mechanism supports specifying dependencies on other SDKs. YY SDK は、ユーザーへの通知のみを実行します。ユーザーは、これらの SDK のインストールと参照を手動で実行する必要があります。The SDK only notifies the user; the user must still install them and reference them manually. YY NuGet は取得を自動的に実行し、ユーザーへの通知を行いません。NuGet pulls them automatically; the user isn't notified.
このメカニズムは、アプリケーション マニフェストや Framework ID のような Microsoft ストアMicrosoft Store の概念と統合されています。The mechanism integrates with Microsoft ストアMicrosoft Store concepts such as app manifest and Framework ID. YY SDK は、ストアStore に固有の概念を渡す必要があります。その結果、パッケージ化機能と、F5 キーを使用する方法は、ストアStore で使用可能な SDK で正常に機能します。The SDK must pass concepts that are specific to the ストアStore so that packaging and F5 work correctly with SDKs that are available in theストアStore. NN
このメカニズムは、Windows 8.x ストアWindows 8.x Store アプリケーション用のアプリケーション デバッグ パイプラインと統合されています。The mechanism integrates with the app debugging pipeline for Windows 8.x ストアWindows 8.x Store apps. YY SDK は、ストアStore に固有の概念を渡す必要があります。その結果、パッケージ化機能と、F5 キーを使用する方法は、ストアStore で使用可能な SDK で正常に機能します。The SDK must pass ストアStore-specific concepts so that packaging and F5 work correctly with SDKs available in the ストアStore. YY NuGet の内容は、プロジェクトの一部になります。NuGet content becomes part of the project. F5 に関して特別な考慮事項は必要ありません。No special F5 consideration is needed.
このメカニズムは、アプリケーション マニフェストに統合されます。The mechanism integrates with app manifests. YY SDK は、ストアStore に固有の概念を渡す必要があります。その結果、パッケージ化機能と、F5 キーを使用する方法は、ストアStore で使用可能な SDK で正常に機能します。The SDK must pass ストアStore-specific concepts so that packaging and F5 work correctly with SDKs available in the ストアStore. YY NuGet の内容は、プロジェクトの一部になります。NuGet content becomes part of the project. F5 に関して特別な考慮事項は必要ありません。No special F5 consideration is needed.
このメカニズムは、非参照ファイルを配置します (たとえば、Windows 8.x ストアWindows 8.x Store アプリケーションのテストを実行するためのテスト フレームワークを配置します)。The mechanism deploys non-reference files (for example, deploy test framework upon which to run tests of Windows 8.x ストアWindows 8.x Store apps). YY \redist フォルダーにファイルをドロップした場合は、それらのファイルは自動的に配置されます。If you drop the files in the \redist folder, the files are automatically deployed. YY
このメカニズムは、Visual Studio IDE 内のプラットフォーム SDK を自動的に追加します。The mechanism automatically adds the platform SDKs in Visual Studio IDE. YY Windows 8Windows 8 SDK または Windows Phone SDK を特定のレイアウトで特定の位置にドロップすると、その SDK は Visual Studio のすべての機能に自動的に統合されます。If you drop the Windows 8Windows 8 SDK or the Windows Phone SDK in a specific location with a specific layout, the SDK is automatically integrated with all the Visual Studio features. NN
このメカニズムでは、開発者のクリーンなコンピューターがサポートされています The mechanism supports a clean developer machine. (つまり、インストールは必要なく、ソース・コード管理からの単純な取得が機能します)。(That is, no installation is required, and simple retrieval from source code control will work.) NN SDK を参照するには、ソリューションと SDK を個別にチェックインする必要があります。Because you reference an SDK, you must check in your solution and the SDK separately. MSBuild が SDK を反復処理する、レジストリとは異なる 2 つの既定の場所から SDK をチェックインできます (詳細については、「Creating a Software Development Kit」 (ソフトウェア開発キットの作成) を参照してください)。You can check in the SDK from the two non-registry default locations from which MSBuild iterates SDKs (for details, see Creating a Software Development Kit). 代わりに、カスタムの位置に SDK が配置されている場合は、プロジェクト ファイル内で次のコードを指定できます。As an alternative, if a custom location consists of the SDKs, you can specify the following code in the project file:

<PropertyGroup> <SDKReferenceDirectoryRoot>C:\MySDKs</SDKReferenceDirectoryRoot> </PropertyGroup>

次に、その場所に SDK をチェックインします。Then check the SDKs into that location.
YY ソリューションをチェック アウトすることもでき、その場合は Visual Studio が直ちにファイルを認識して、そのファイルを処理します。You can check out the solution, and Visual Studio immediately recognizes and acts on the files.
パッケージ作成者から成る既存の大規模コミュニティに参加することもできます。You can join a large existing community of package authors. N/AN/A このコミュニティは新しく作成されたものです。The community is new. YY
パッケージ使用者から成る既存の大規模コミュニティに参加することもできます。You can join a large existing community of package consumers. N/AN/A このコミュニティは新しく作成されたものです。The community is new. YY
パートナーのエコシステム (カスタム ギャラリー、リポジトリなど) に参加できます。You can join an ecosystem of partners (custom galleries, repositories, and so forth). N/AN/A 使用可能なリポジトリとしては、Visual Studio Marketplace、Microsoft ダウンロード センター、および Microsoft ストアMicrosoft Store などがあります。The available repositories include Visual Studio Marketplace, Microsoft Download Center, and Microsoft ストアMicrosoft Store. YY
このメカニズムは、パッケージ作成と使用の両方を対象にした、継続的な統合ビルド サーバーに統合されます。The mechanism integrates with continuous-integration build servers for both package creation and consumption. YY SDK は、チェックインの位置 (SDKReferenceDirectoryRoot プロパティ) をコマンド ラインの一部として MSBuild に渡す必要があります。The SDK must pass the checked-in location (SDKReferenceDirectoryRoot property) on command line to MSBuild. YY
このメカニズムでは、安定バージョンとプレリリース パッケージ バージョンの両方がサポートされています。The mechanism supports both stable and pre-release package versions. YY SDK では、複数のバージョンに対する参照の追加をサポートしています。The SDK supports adding references to multiple versions. YY
このメカニズムでは、インストール済みパッケージの自動更新がサポートされています。The mechanism supports auto-update for installed packages. YY SDK が VSIX として、または Visual Studio の自動更新の一部として提供されている場合は、SDK は自動的な通知を行います。If shipped as VSIX or part of Visual Studio automatic updates, SDK provides automatic notifications. YY
このメカニズムには、パッケージを作成および使用するためのスタンドアロンの .exe ファイルが含まれています。The mechanism contains a stand-alone .exe file for creating and consuming packages. YY SDK には MSBUILD.exe が含まれています。The SDK contains MSBuild.exe. YY
パッケージは、バージョン管理機能にチェックインできます。Packages can be checked into version control. YY Documents ノードの外部にある場所でチェックインを行うことはできません。つまり、拡張 SDK をチェックインできない可能性があります。拡張 SDK のサイズは大きい可能性があります。You can't check in anything outside the Documents node, which means that the Extension SDKs might not be checked in.The size of Extension SDK might be large. YY
PowerShell インターフェイスを使用して、パッケージを作成および使用することができます。You can use a PowerShell interface to create and consume packages. Y (使用)、N (作成)Y (consumption), N (creation) SDK を作成するためのツールはありません。No tooling for creating an SDK. 使用するには、コマンド ラインで MSBuild を実行します。Consumption is executing MSBuild on the command line. YY
デバッグをサポートするために、シンボル パッケージを使用できます。You can use a Symbol package for debugging support. YY .pdb ファイルを SDK 内にドロップすると、そのファイルが自動的に使用されます。If you drop .pdb files in the SDK, the files get picked up automatically. YY
このメカニズムでは、パッケージ マネージャーの自動更新がサポートされています。The mechanism supports package manager auto-updates. N/AN/A SDK を変更するには、MSBuild を使用します。The SDK gets revised with MSBuild. YY
このメカニズムでは、軽量のマニフェスト ファイル形式がサポートされています。The mechanism supports a lightweight manifest format. YY SDKManifest.xml では、多くの属性がサポートされていますが、通常必要とされるのは、小規模なサブセットです。SDKManifest.xml supports many attributes, but a small subset is usually necessary. YY
このメカニズムは、Visual Studio のすべてのエディションで使用できます。The mechanism is available for all Visual Studio editions. YY SDK では、Visual Studio Express から Visual Studio UltimateVisual Studio Ultimate まで、Visual Studio のすべてのエディションがサポートされています。The SDK supports all Visual Studio editions, from Visual Studio Express through Visual Studio UltimateVisual Studio Ultimate. YY NuGet では、Express から Visual Studio UltimateVisual Studio Ultimate まで、Visual Studio のすべてのエディションがサポートされています。NuGet supports all Visual Studio editions, Express up through Visual Studio UltimateVisual Studio Ultimate.
このメカニズムは、すべてのプロジェクトの種類で使用できます。The mechanism is available for all project types. NN SDK では Windows 8.x ストアWindows 8.x Store 以降の Visual Studio 2012Visual Studio 2012 アプリケーションがサポートされています。The SDK supports Windows 8.x ストアWindows 8.x Store apps starting in Visual Studio 2012Visual Studio 2012. NN 許可されているプロジェクトの一覧をレビューできます。You can review a list of allowed projects.

関連項目See also

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