オプション パッケージと関連セットの作成Optional packages and related set authoring

オプション パッケージには、メイン パッケージに統合できるコンテンツが格納されます。Optional packages contain content that can be integrated with a main package. オプション パッケージは、ダウンロード可能なコンテンツ (DLC) 用や、サイズ制約に対応して大規模アプリを分割する場合、元のアプリから分離して追加コンテンツを出荷する場合に便利です。These are useful for downloadable content (DLC), dividing a large app for size restraints, or for shipping any additional content separate from your original app.

関連セットとは、オプション パッケージの拡張機能です。これらを使用すると、メイン パッケージとオプション パッケージを通じて、厳密なバージョン セットを適用できます。Related sets are an extension of optional packages -- they allow you to enforce a strict set of versions across main and optional packages. また、オプション パッケージからネイティブ コード (C++) を読み込むこともできます。They also let you load native code (C++) from optional packages.

前提条件Prerequisites

  • Visual Studio 2017 Version 15.1Visual Studio 2017, version 15.1
  • Windows 10 Version 1703Windows 10, version 1703
  • Windows 10 Version 1703 SDKWindows 10, version 1703 SDK

最新の開発ツールをすべて取得する方法については、「Windows 10 用のダウンロードとツール」をご覧ください。To get all of the latest development tools, see Downloads and tools for Windows 10.

注意

Microsoft Store に省略可能なパッケージや関連する設定を使用するアプリを送信するには、アクセス許可する必要があります。To submit an app that uses optional packages and/or related sets to the Microsoft Store, you will need permission. オプションのパッケージおよび関連する設定は、いないストアに送信する場合に、パートナー センターの許可なく基幹業務 (LOB) またはエンタープライズのアプリ使用できます。Optional packages and related sets can be used for Line of Business (LOB) or enterprise apps without Partner Center permission if they are not submitted to the Store. オプション パッケージや関連セットを使用するアプリの提出許可を得る方法については、「Windows 開発者向けサポート」をご覧ください。See Windows developer support to get permission to submit an app that uses optional packages and related sets.

コード サンプルCode sample

この記事を読みながら GitHub でオプション パッケージのコード サンプルを参照し、Visual Studio でオプション パッケージと関連セットがどのように動作するかを実際に体験して理解することをお勧めします。While you're reading this article, it's recommended that you follow along with the optional package code sample on GitHub for a hands-on understanding of how optional packages and related sets work within Visual Studio.

オプション パッケージOptional packages

Visual Studio オプション パッケージを作成するには、以下の手順を実行します。To create an optional package in Visual Studio, you'll need to:

  1. アプリの確認ターゲット プラットフォームの最小バージョンに設定されます。10.0.15063.0 またはそれ以降。Make sure your app's Target Platform Min Version is set to: 10.0.15063.0 or higher.
  2. メイン パッケージ プロジェクトから、Package.appxmanifest ファイルを開きます。From your main package project, open the Package.appxmanifest file. [パッケージ化] タブに移動し、[パッケージ ファミリ名] ("" 文字の前にある文字列すべて) を書き留めます。Navigate to the "Packaging" tab and make a note of your package family name, which is everything before the "" character.
  3. オプション パッケージ プロジェクトから、Package.appxmanifest を右クリックして [プログラムから開く] > [XML (テキスト) エディター] を選択します。From your optional package project, right click the Package.appxmanifest and select Open with > XML (Text) Editor.
  4. ファイル内の <Dependencies> 要素を見つけます。Locate the <Dependencies> element in the file. 以下を追加します。Add the following:
<uap3:MainPackageDependency Name="[MainPackageDependency]"/>

[MainPackageDependency] は、手順 2. の [パッケージ ファミリ名] の値に置き換えてください。Replace [MainPackageDependency] with your package family name from Step 2. これにより、オプション パッケージメイン パッケージに依存することを指定できます。This will specify that your optional package is dependent on your main package.

手順 1 から 4 を実行してパッケージの依存関係を設定できたら、通常の開発作業に進むことができます。Once you have your package dependencies set up from Steps 1 through 4, you can continue developing as you normally would. オプション パッケージからメイン パッケージにコードを読み込むには、関連セットを構築する必要があります。If you would like to load code from the optional package into the main package, you will need to build a related set. 詳しくは、「関連セット」セクションをご覧ください。See the Related sets section for more details.

Visual Studio は、オプション パッケージを展開するたびにメイン パッケージが再展開されるように構成できます。Visual Studio can be configured to re-deploy your main package each time you deploy an optional package. Visual Studio でビルド依存関係を設定するには、以下の手順を実行する必要があります。To set the build dependency in Visual Studio, you should:

  • オプション パッケージ プロジェクトを右クリックし、[ビルド依存関係] > [プロジェクト依存関係] を選択します。Right click the optional package project and select Build Dependencies > Project Dependencies...
  • メイン パッケージ プロジェクトを確認し、[OK] を選択します。Check the main package project and select "OK".

これで、F5 キーを押すか、オプション パッケージ プロジェクトのビルドを実行するたびに、Visual Studio によってメイン プロジェクトが先にビルドされるようになります。Now, every time you enter F5 or build an optional package project, Visual Studio will build the main package project first. これにより、メイン プロジェクトとオプション プロジェクトが確実に同期されます。This will ensure that your main project and optional projects are in sync.

関連セットRelated sets

オプション パッケージからメイン パッケージにコードを読み込むには、関連セットを構築する必要があります。If you want to load code from an optional package into the main package, you will need to build a related set. 関連セットを構築するには、メイン パッケージとオプション パッケージを確実に組み合わせる必要があります。To build a related set, your main package and optional package must be tightly coupled. 関連する設定のメタデータは、メイン パッケージの .appxbundle または .msixbundle ファイルで指定されます。The metadata for related sets is specified in the .appxbundle or .msixbundle file of the main package. Visual Studio を使用すると、正しいメタデータをファイルに取得できます。Visual Studio helps you get the correct metadata in your files. 関連セット用にアプリのソリューションを構成するには、次の手順を使用します。To configure your app's solution for related sets, use the following steps:

  1. メイン パッケージ プロジェクトを右クリックして、[追加] > [新しいアイテム] を選択します。Right click the main package project, select Add > New Item...
  2. そのウィンドウから、[インストールされたテンプレート] で ".txt" を検索し、新しいテキスト ファイルを追加します。From the window, search the Installed Templates for ".txt" and add a new text file.

重要

新しいテキスト ファイルに Bundle.Mapping.txt という名前を付けます。The new text file must be named: Bundle.Mapping.txt.

  1. Bundle.Mapping.txt ファイル内に、オプション パッケージ プロジェクトや外部パッケージの相対パスをすべて指定します。In the Bundle.Mapping.txt file you'll specify relative paths to any optional package projects or external packages. Bundle.Mapping.txt ファイルのサンプルを次に示します。A sample Bundle.Mapping.txt file should look something like this:
[OptionalProjects]
"..\ActivatableOptionalPackage1\ActivatableOptionalPackage1.vcxproj"
"..\ActivatableOptionalPackage2\ActivatableOptionalPackage2.vcxproj"

[ExternalPackages]
"..\ActivatableOptionalPackage1\x86\Release\ActivatableOptionalPackage3_1.1.1.0\ ActivatableOptionalPackage3_1.1.1.0.appx"

この方法でソリューションが構成されている場合、Visual Studio は関連セットの必要なメタデータをすべて含めて、メイン パッケージのバンドル マニフェストを作成します。When your solution is configured this way, Visual Studio will create a bundle manifest for the main package with all of the required metadata for related sets.

などのオプションのパッケージに注意してください、Bundle.Mapping.txtの関連する設定ファイルは Windows 10 バージョン 1703 以降でのみ動作します。Note that like optional packages, a Bundle.Mapping.txt file for related sets will only work on Windows 10, version 1703 or higher. さらに、アプリの対象プラットフォームの最小バージョンは、10.0.15063.0 以上に設定する必要があります。Additionally, your app's Target Platform Min Version should be set to 10.0.15063.0 or higher.

既知の問題Known issues

現在、関連セット オプション プロジェクトのデバッグは Visual Studio でサポートされていません。Debugging a related set optional project is not currently supported in Visual Studio. この問題を回避するには、アクティブ化を展開および起動 (Ctrl + F5) して、プロセスにデバッガーを手動でアタッチします。To work around this issue, you can deploy and launch the activation (Ctrl + F5) and manually attach the debugger to a process. デバッガーをアタッチするには、Visual Studio の [デバッグ] メニューで [プロセスにアタッチ] を選択し、メイン アプリ プロセスにデバッガーをアタッチします。To attach the debugger, go the "Debug" menu in Visual Studio, select "Attach to Process...", and attach the debugger to the main app process.