実行可能コードを使用したオプション パッケージ

実行可能コードを使用したオプション パッケージは、大規模または複雑なアプリを分割したり、既に公開されたアプリに追加するために役立ちます。 Visual Studio 2017 のバージョン 15.7 と .NET ネイティブ 2.1 を使用すると、C++ と C# の両方のオプション パッケージから実行可能コードを読み込むことができます。

前提条件

  • Visual Studio 2019 または Visual Studio 2017 (バージョン 15.7 以降)
  • Windows 10 のバージョン 1709 以降
  • Windows 10 バージョン 1709 SDK 以降

最新の開発ツールを入手するには、「Windows 10 用ダウンロードとツール」を参照してください。

Note

オプション パッケージや関連セットを使用するアプリを Store に送信するには、許可が必要です。 ストアに提出しない場合は、パートナー センターから許可を受けずにオプション パッケージや関連セットを基幹業務 (LOB) アプリやエンタープライズ アプリに使用できます。 オプション パッケージと関連セットを使用するアプリを送信する許可を取得するには、「Windows Developer サポート」を参照してください。

Note

実行可能コードを含むオプション パッケージは、関連セットの一部である必要があります。 関連セットの一部でない限り、オプション パッケージからコードを実行することはできません。

実行可能コードを使用した C++ オプション パッケージ

C++ オプション パッケージからコードを読み込むには、GitHub の「OptionalPackageSample」リポジトリを参照してください。 「OptionalPackageDLL」は、メイン パッケージから実行可能なコードを持つプロジェクトを作成する方法について表示します。 MyMainApp プロジェクトは、OptionalPackageDLL.dll ファイルからコードを読み込む方法を示しています。

実行可能コードを持つ C# オプション パッケージ

C# でオプションのコード パッケージのビルドを開始するには、以下の手順に従ってソリューションを構成します。

  1. Windows 10 Fall Creators Update SDK (ビルド 16299) 以降に最小バージョンが設定された新しい UWP アプリケーションを作成します。

  2. 新しいオプション コード パッケージ (ユニバーサル Windows) プロジェクトをソリューションに追加します。 最小バージョンターゲット バージョンが、メイン アプリのバージョンと一致していることを確認します。

  3. アプリを Microsoft Store に提出する予定である場合は、両方のプロジェクトを右クリックして、[Microsoft Store] -> [アプリケーションをストアと関連付ける] の順に選択します。

  4. メイン アプリの Package.appxmanifest ファイルを開いて Identity Name 値を探します。 次の手順のためにこの値をメモしてください。

  5. オプションのアプリ パッケージの Package.appxmanifest ファイルを開いて uap3:MainAppPackageDependency Name 値を探します。 前の手順で述べたメイン アプリ パッケージの uap3:MainAppPackageDependency Name 値と一致するため、Identity Name 値を更新します。

    メイン アプリの Package.appxmanifest にある Identity の例を表示します。

    <Identity Name="12345.MainAppProject" Publisher="CN=PublisherName" Version="1.0.0.0" />
    

    オプションのアプリ パッケージの uap3:MainPackageDependency は、メイン アプリの Identity と一致するために更新する必要があります。

    <uap3:MainPackageDependency Name="12345.MainAppProjectTest" />
    
  6. メイン アプリに Bundle.mapping.txt ファイルを追加します。 この「関連セット」セクションの手順に従って、両方のアプリを含む関連セットを作成します。

  7. オプションのパッケージ プロジェクトをビルドし、..\[PathToOptionalPackageProject]\bin\[architecture]\[configuration]\Reference で見つかったビルドからの出力のパッケージ リファレンス フォルダーに移動します。 .winmd ファイル(手順 8) はアーキテクチャに依存しないため、リファレンス フォルダーへのパスで任意のアーキテクチャを選択できることに注意してください。

  8. メイン アプリ プロジェクトからリファレンスを使用し、このフォルダーにある .winmd ファイルに追加します。 オプションのパッケージ プロジェクトで API セキュリティを変更するたびに、この .winmd ファイルを更新する必要があります。 このリファレンスは、メイン アプリ プロジェクトがコンパイルに必要な情報を提供します。

  9. メイン アプリ プロジェクトでプロジェクト ビルドのプロパティに移動し、「.NET ネイティブのツール チェーンを使用してコンパイル」を選択します。 現在、C# でオプションのコード パッケージの作成には、.NET ネイティブでデバッグのみがサポートされています。 プロジェクトのデバッグ プロパティに移動し、「オプション パッケージのデプロイ」を選択します。 これにより、メイン アプリ プロジェクトをデプロイするたびに、両方のパッケージが確実に同期されます。

これらの手順が完了したら、WinRT コンポーネント マネージド プロジェクトであるかのように、オプション パッケージ プロジェクトにコードを追加できます。 メイン アプリ プロジェクトのコードにアクセスするには、オプションのパッケージ プロジェクトで公開されている公開用メソッドを呼び出します。