マネージ Windows ランタイム コンポーネントの配布

ファイルをコピーすることで、Windows ランタイム コンポーネントを配布できます。ただし、コンポーネントが多数のファイルで構成されている場合、ユーザーにとってインストールが面倒になる可能性があります。また、ファイルの配置に誤りがある場合や、参照の設定に失敗した場合、ユーザーの観点で問題が発生する可能性があります。複雑なコンポーネントを、Visual Studio 拡張機能 SDK という形でパッケージ化し、インストールと使用を容易にすることができます。ユーザーは、パッケージ全体を対象とする 1 つの参照を設定するだけで済みます。MSDN ライブラリの "Installing and Managing Visual Studio Tools and Extensions (Visual Studio のツールと拡張機能のインストールと管理)" で説明されているように、[拡張機能と更新プログラム] ダイアログ ボックスを使用してコンポーネントの配置とインストールを簡単に実行できるようになります。

配布可能な Windows ランタイム コンポーネントの計画

使用している .winmd ファイルなど、バイナリ ファイルに関する一意の名前を選択します。一意性を保証するために、次の形式をお勧めします。

company.product.purpose.extension
たとえば、Microsoft.Cpp.Build.dll

バイナリ ファイルは、多くの場合は他の開発者から提供されたバイナリ ファイルと共に、アプリケーション パッケージ内にインストールされます。MSDN ライブラリの "How to: Create a Software Development Kit (方法: ソフトウェア開発キットの作成)" にある「Extension SDKs (拡張機能 SDK)」を参照してください。

コンポーネントを配布する方法を決定するために、そのコンポーネントがどれほど複雑かを考慮してください。次の場合に、拡張機能 SDK や類似のパッケージ マネージャーを使用することをお勧めします。

  • コンポーネントは、複数のファイルで構成されています。

  • 複数のプラットフォーム (たとえば、x86 と ARM) を対象として、コンポーネントの複数のバージョンを提供します。

  • コンポーネントのデバッグ バージョンとリリース バージョンの両方を提供します。

  • コンポーネントには、デザイン時のみに使用されるファイルとアセンブリが含まれています。

上記の 1 つ以上が成立する場合は、拡張機能 SDK が非常に便利です。

注意

複雑なコンポーネントの場合は、NuGet パッケージ管理システム が、拡張機能 SDK の代わりとなる、オープン ソースの選択肢を提供します。拡張機能 SDK と同様、NuGet を使用すると、複雑なコンポーネントのインストールを簡略化するパッケージを作成できます。NuGet パッケージ、および Visual Studio 拡張機能 SDK の比較については、MSDN ライブラリの "Adding References Using NuGet Versus an Extension SDK (NuGet または拡張機能 SDK を使用した場合の参照の追加の比較)" を参照してください。

ファイルのコピーによる配布

コンポーネントが単一の .winmd ファイル、または 1 つの .winmd ファイルとリソース インデックス (.pri) ファイルで構成されている場合、単純に、ユーザーが .winmd ファイルをコピーできるようにするだけで済みます。ユーザーは、プロジェクトの配置先として使用する任意の場所にそのファイルを配置し、[既存項目の追加] ダイアログ ボックスを使用して .winmd ファイルをプロジェクトに追加し、その後、[参照マネージャー] ダイアログ ボックスを使用して参照を作成することができます。.pri ファイルまたは .xml ファイルを含めた場合は、.winmd ファイルと共にそれらのファイルも配置するようにユーザーに伝えます。

注意

プロジェクトにリソースが何も含まれていない場合でも、Windows ランタイム コンポーネントをビルドすると、Visual Studio 2012 によって .pri ファイルが必ず生成されます。コンポーネントに対応するテスト アプリケーションがある場合、bin\debug\AppX フォルダー内でアプリケーション パッケージの内容が検査される際に .pri ファイルが使用されるかどうかを決定できます。コンポーネントに対応する .pri ファイルがその場所に配置されていない場合、そのファイルを配布する必要はありません。または、MakePRI.exe ツール を使用して、Windows ランタイム コンポーネント プロジェクトからリソース ファイルをダンプすることもできます。たとえば、Visual Studio のコマンド プロンプト ウィンドウで、次のように入力します。

makepri dump /if MyComponent.pri /of MyComponent.pri.xml

.pri ファイルの詳細については、「リソース管理システム (Windows)」を参照してください。

拡張機能 SDK による配布

複雑なコンポーネントには、通常、Windows リソースが含まれていますが、前のセクションに記載されている、空の .pri ファイルの検出に関するメモを参照してください。

拡張機能 SDK を作成するには

  1. Visual Studio 2012 SDK がインストールされていることを確認します。Visual Studio の "Downloads (ダウンロード センター)" ページから Visual Studio SDK をダウンロードできます。

  2. [VSIX プロジェクト] テンプレートを使用し、新しいプロジェクトを作成します。このテンプレートは、[機能拡張] カテゴリの [Visual C#] または [Visual Basic] の下で見つかります。このテンプレートは、Visual Studio 2012 SDK の一部としてインストールされます。MSDN ライブラリの "Walkthrough: Creating an SDK using C# or Visual Basic (チュートリアル: C# または Visual Basic を使用した SDK の作成)"では、非常に簡単なシナリオでこのテンプレートの使用方法を示します。)

  3. SDK のフォルダー構造を決定します。フォルダー構造は VSIX プロジェクトのルート レベルで開始され、[参照][再頒布可能パッケージ][DesignTime] の各フォルダーがあります。

    • [参照] は、ユーザーがプログラミングできるバイナリ ファイルが配置される場所です。拡張機能 SDK は、ユーザーの Visual Studio プロジェクト内にあるこれらのファイルへの参照を作成します。

    • [再頒布可能パッケージ] は、開発者独自のコンポーネントを使用して作成したアプリケーションの場合に、バイナリ ファイルと共に配布する必要のある他のファイルが配置される場所です。

    • [DesignTime] は、開発者独自のコンポーネントを使用するアプリケーションを作成する場合にのみ使用されるファイルが配置される場所です。

    これらの各フォルダー内で、構成フォルダーを作成できます。許可される名前は、[debug][retail]、および [CommonConfiguration] です。[CommonConfiguration] フォルダーは、リテール ビルドとデバッグ ビルドのどちらであっても使用されるファイルを対象にしています。コンポーネントのリテール ビルドのみを配布する場合は、[CommonConfiguration] にすべてのファイルを配置し、他の 2 つのフォルダーを省略することができます。

    各構成フォルダーで、プラットフォーム固有のファイルを配置するアーキテクチャ フォルダーを作成できます。すべてのプラットフォームで同じファイルを使用する場合は、[ニュートラル] という名前の 1 つのフォルダーを作成できます。他のアーキテクチャに対応するフォルダーの名前も含め、フォルダー構造の詳細については、MSDN ライブラリの "How to: Create a Software Development Kit (方法: ソフトウェア開発キットの作成)" を参照してください。("How to: Create a Software Development Kit (方法: ソフトウェア開発キットの作成)" では、プラットフォーム SDK と拡張機能 SDK の両方について説明します。混乱を避けるために、プラットフォーム SDK に関するセクションを折りたたむと役に立つことがあります。)

  4. SDK マニフェスト ファイルを作成します。マニフェストでは、名前、バージョン情報、SDK がサポートするアーキテクチャ、.NET Framework のバージョン、および Visual Studio が SDK を使用する方法に関する他の情報を指定します。詳細と例については、"How to: Create a Software Development Kit (方法: ソフトウェア開発キットの作成)" を参照してください。

  5. 拡張機能 SDK をビルドし、配布します。VSIX パッケージのローカライズや署名を含む詳細については、MSDN ライブラリの "VSIX Deployment (VSIX の配置)" を参照してください。

参照

その他の技術情報

"How to: Create a Software Development Kit (方法: ソフトウェア開発キットの作成)"

"NuGet package management system (NuGet パッケージ管理システム)"

リソース管理システム

"Installing and Managing Visual Studio Tools and Extensions (Visual Studio のツールと拡張機能のインストールと管理)"

MakePRI.exe のコマンド オプション