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

実行可能コードを含むオプションのパッケージは、大規模または複雑なアプリを分割したり、既に発行されているアプリに追加したりする場合に便利です。 Visual Studio 2017 Version 15.7 および .NET Native 2.1 では、C++ および C# のオプション パッケージから実行可能コードを読み込むことができます。

前提条件

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

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

注意

オプション パッケージや関連セットを使用するアプリを Microsoft Store に提出するには、許可が必要です。 オプションのパッケージと関連するセットは、パートナーセンターのアクセス許可を持たない基幹業務 (LOB) またはエンタープライズアプリに対して、ストアに送信されていない場合に使用できます。 オプション パッケージや関連セットを使用するアプリの提出許可を得る方法については、「Windows 開発者向けサポート」をご覧ください。

注意

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

実行可能コードを使用した 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 にあるビルドの出力の Reference パッケージ フォルダーに移動します。 .winmd ファイル (手順 8) はアーキテクチャに依存しないため、Reference フォルダーへのパスで任意のアーキテクチャを選択できる点に注意してください。

  8. メイン アプリ プロジェクトからの参照を、このフォルダーにある .winmd ファイルに追加します。 オプション パッケージ プロジェクトで API サーフェイス領域を変更するたびに、この .winmd ファイルを更新する 必要があります。 このリファレンスでは、コンパイルするために必要な情報を含むメイン アプリ プロジェクトが提供されます。

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

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