マネージ Windows ランタイム コンポーネントの配布Distributing a managed Windows Runtime Component

Windows ランタイム コンポーネントは、ファイルをコピーすることで配布できます。You can distribute your Windows Runtime Component by file copy. ただし、コンポーネントが多数のファイルで構成されている場合、インストールがユーザーの負担になる可能性があります。However, if your component consists of many files, installation can be tedious for your users. また、ファイルの配置の誤りや、参照設定のエラーが原因で問題が発生する可能性もあります。Also, errors in placing files or failure to set references might cause problems for them. 複雑なコンポーネントは、Visual Studio 拡張 SDK としてパッケージ化すると、簡単にインストールして使用することができます。You can package a complex component as a Visual Studio extension SDK, to make it easy to install and use. ユーザーは、パッケージ全体で参照を 1 つだけ設定する必要があります。Users only need to set one reference for the entire package. [拡張機能と更新プログラム] ダイアログ ボックスを使用すると、コンポーネントを簡単に配置してインストールできます。詳しくは、MSDN ライブラリの「Visual Studio 拡張機能の検索と使用」をご覧ください。They can easily locate and install your component by using the Extensions and Updates dialog box, as described in Finding and Using Visual Studio Extensions, in the MSDN Library.

配布可能な Windows ランタイム コンポーネントの計画Planning a distributable Windows Runtime Component

.winmd ファイルなどのバイナリ ファイルには、一意の名前を付けます。Choose unique names for binary files, such as your .winmd files. 次の形式を使用して、名前を一意にすることをお勧めします。We recommend the following format to ensure uniqueness:

For example: Microsoft.Cpp.Build.dll

バイナリ ファイルは、アプリ パッケージにインストールされます。場合によっては、他の開発者のバイナリ ファイルも一緒にインストールされます。Your binary files will be installed in app packages, possibly with binary files from other developers. 「拡張機能 Sdk」を参照してください方法。ソフトウェア開発キットの作成、MSDN ライブラリ。See "Extension SDKs" in How to: Create a Software Development Kit, in the MSDN Library.

コンポーネントを配布する方法を決定する際は、複雑さを考慮します。To decide how to distribute your component, consider how complex it is. 次の場合、拡張 SDK、または同様のパッケージ マネージャーを使用することをお勧めします。An extension SDK or similar package manager is recommended when:

  • コンポーネントが複数のファイルで構成されている。Your component consists of multiple files.
  • 複数のプラットフォーム (たとえば、x86 と ARM) に対応するため、複数のバージョンのコンポーネントを提供する。You provide versions of your component for multiple platforms (x86 and ARM, for example).
  • デバッグ バージョンと、リリース バージョンの両方のコンポーネントを提供する。You provide both debug and release versions of your component.
  • コンポーネントに、設計時にのみ使用されるファイルやアセンブリが含まれる。Your component has files and assemblies that are used only at design time.

拡張 SDK は上記の 1 つ以上の条件に当てはまる場合に特に便利です。An extension SDK is particularly useful if more than one of the above are true.

  複雑なコンポーネントは、NuGet パッケージの管理システムはオープン ソースの代わりに拡張機能 Sdk を提供します。Note  For complex components, the NuGet package management system offers an open source alternative to extension SDKs. NuGet を使用すると、拡張 SDK と同様にパッケージを作成できるため、複雑なコンポーネントのインストールが簡単にできます。Like extension SDKs, NuGet enables you to create packages that simplify the installation of complex components. NuGet パッケージと Visual Studio 拡張 SDK を比較するには、MSDN ライブラリのNuGet と拡張 SDK を使用して参照を追加する方法に関するページをご覧ください。For a comparison of NuGet packages and Visual Studio extension SDKs, see Adding References Using NuGet Versus an Extension SDK in the MSDN Library.

ファイルのコピーによる配布Distribution by file copy

コンポーネントが 1 つの .winmd ファイル、または 1 つの .winmd ファイルと 1 つのリソース インデックス (.pri) ファイルで構成されている場合は、.winmd ファイルをユーザーがコピーできるように用意するだけです。If your component consists of a single .winmd file, or a .winmd file and a resource index (.pri) file, you can simply make the .winmd file available for users to copy. ユーザーは、プロジェクトの任意の場所にファイルを置き、 [既存項目の追加] ダイアログ ボックスを使用して、.winmd ファイルをプロジェクトに追加してから、[参照マネージャー] ダイアログ ボックスを使用して参照を作成することができます。Users can put the file wherever they want to in a project, use the Add Existing Item dialog box to add the .winmd file to the project, and then use the Reference Manager dialog box to create a reference. .pri ファイルまたは .xml ファイルを含める場合は、.winmd ファイルと共に、それらのファイルを配置するようにユーザーに伝えます。If you include a .pri file or an .xml file, instruct users to place those files with the .winmd file.

  Visual Studio 常に生成 .pri ファイル、Windows ランタイム コンポーネントをビルドするときに、プロジェクトにはすべてのリソースが含まれていない場合でもです。Note  Visual Studio always produces a .pri file when you build your Windows Runtime Component, even if your project doesn't include any resources. コンポーネントのテスト アプリがあれば、箱の中のアプリ パッケージの内容が検査される .pri ファイルが使用されるかどうかを判断できます\デバッグ\AppX フォルダー。If you have a test app for your component, you can determine whether the .pri file is used by examining the contents of the app package in the bin\debug\AppX folder. コンポーネントの .pri ファイルがそこにない場合は、.pri ファイルを配布する必要はありません。If the .pri file from your component doesn't appear there, you don't need to distribute it. または、MakePRI.exe ツールを使用して、Windows ランタイム コンポーネント プロジェクトからリソース ファイルをダンプすることもできます。Alternatively, you can use the MakePRI.exe tool to dump the resource file from your Windows Runtime Component project. たとえば、Visual Studio コマンド プロンプト ウィンドウで次のように入力します。makepri dump /if MyComponent.pri /of MyComponent.pri.xml .pri ファイルについて詳しくは、「リソース管理システム (Windows)」をご覧ください。For example, in the Visual Studio Command Prompt window, type: makepri dump /if MyComponent.pri /of MyComponent.pri.xml You can read more about .pri files in Resource Management System (Windows).

拡張 SDK による配布Distribution by extension SDK

複雑なコンポーネントには通常、Windows のリソースが含まれていますが、空の .pri ファイルを検出する方法については、前のセクションの注をご覧ください。A complex component usually includes Windows resources, but see the note about detecting empty .pri files in the previous section.

拡張機能 SDK を作成するにはTo create an extension SDK

  1. Visual Studio SDK がインストールされていることを確認します。Make sure you have the Visual Studio SDK installed. Visual Studio SDK は、Visual Studio ダウンロード ページからダウンロードできます。You can download the Visual Studio SDK from the Visual Studio Downloads page.

  2. VSIX プロジェクト テンプレートを使用して、新しいプロジェクトを作成します。Create a new project using the VSIX Project template. [機能拡張] カテゴリの [Visual C#] または [Visual Basic] の下にテンプレートがあります。You can find the template under Visual C# or Visual Basic, in the Extensibility category. このテンプレートは、Visual Studio SDK の一部としてインストールされます。This template is installed as part of the Visual Studio SDK. (チュートリアル。SDK を使用して、作成C#または Visual Basicまたはチュートリアル。C++ を使用して SDK を作成する、非常に単純なシナリオでこのテンプレートの使用方法を示します。(Walkthrough: Creating an SDK using C# or Visual Basic or Walkthrough: Creating an SDK using C++, demonstrates the use of this template in a very simple scenario. ))

  3. SDK のフォルダー構造を決定します。Determine the folder structure for your SDK. フォルダーの構造は、VSIX プロジェクトのルート レベルの、ReferencesRedist、および DesignTime フォルダーで始まります。The folder structure begins at the root level of your VSIX project, with the References, Redist, and DesignTime folders.

    • References は、ユーザーがプログラミングできるバイナリ ファイルの場所です。References is the location for binary files that your users can program against. 拡張 SDK は、ユーザーの Visual Studio プロジェクトで、これらのファイルへの参照を作成します。The extension SDK creates references to these files in your users' Visual Studio projects.
    • Redist は、開発者独自のコンポーネントを使用して作成されたアプリの場合、バイナリ ファイルと共に配布する必要がある他のファイルの場所です。Redist is the location for other files that must be distributed with your binary files, in apps that are created by using your component.
    • DesignTime は、開発者により、独自のコンポーネントを使用するアプリの作成中のみ使用されるファイルの場所です。DesignTime is the location for files that are used only when developers are creating apps that use your component.

    これらの各フォルダーで、構成フォルダーを作成できます。In each of these folders, you can create configuration folders. 使用できる名前は、debug、retail、CommonConfiguration です。The permitted names are debug, retail, and CommonConfiguration. CommonConfiguration フォルダーに格納されるファイルは、製品ビルドでも、デバッグ ビルドでも同じです。The CommonConfiguration folder is for files that are the same whether they're used by retail or debug builds. 製品ビルドのコンポーネントのみを配布する場合は、CommonConfiguration にすべてのファイルを置いて、他の 2 つのフォルダーを省略できます。If you're only distributing retail builds of your component, you can put everything in CommonConfiguration and omit the other two folders.

    各構成フォルダーには、プラットフォーム固有のファイルを格納するアーキテクチャ フォルダーを作成できます。In each configuration folder, you can provide architecture folders for platform-specific files. すべてのプラットフォームで同じファイルを使用する場合は、neutral という名前のフォルダーを 1 つ作成します。If you use the same files for all platforms, you can supply a single folder named neutral. 他のアーキテクチャのフォルダーの名前を含む、フォルダー構造の詳細を確認することができます方法。ソフトウェア開発キットの作成、MSDN ライブラリ。You can find details of the folder structure, including other architecture folder names, in How to: Create a Software Development Kit, in the MSDN Library. (この記事は、プラットフォーム SDK と拡張 SDK の両方について説明しています。(That article discusses both platform SDKs and extension SDKs. 混乱を避けるため、プラットフォーム SDK に関するセクションを折りたたむとわかりやすくなります。You may find it useful to collapse the section about platform SDKs, to avoid confusion. ))

  4. SDK マニフェスト ファイルを作成します。Create an SDK manifest file. マニフェストでは、名前とバージョン情報、SDK がサポートしているアーキテクチャ、.NET Framework のバージョン、および Visual Studio が SDK を使用する方法に関する他の情報を指定します。The manifest specifies name and version information, the architectures your SDK supports, .NET Framework versions, and other information about the way Visual Studio uses your SDK. 詳細と例が見つかります方法。ソフトウェア開発キットの作成です。You can find details and an example in How to: Create a Software Development Kit.

  5. 拡張 SDK をビルドして配布します。Build and distribute the extension SDK. VSIX パッケージのローカライズや、署名などの詳細は、MSDN ライブラリの「VSIX 配置」をご覧ください。For in-depth information, including localizing and signing the VSIX package, see VSIX Deployment in the MSDN Library.