実行可能コードを使用したオプション パッケージ
実行可能コードを使用したオプション パッケージは、大規模または複雑なアプリを分割したり、既に公開されたアプリに追加するために役立ちます。 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# でオプションのコード パッケージのビルドを開始するには、以下の手順に従ってソリューションを構成します。
Windows 10 Fall Creators Update SDK (ビルド 16299) 以降に最小バージョンが設定された新しい UWP アプリケーションを作成します。
新しいオプション コード パッケージ (ユニバーサル Windows) プロジェクトをソリューションに追加します。 最小バージョンとターゲット バージョンが、メイン アプリのバージョンと一致していることを確認します。
アプリを Microsoft Store に提出する予定である場合は、両方のプロジェクトを右クリックして、[Microsoft Store] -> [アプリケーションをストアと関連付ける] の順に選択します。
メイン アプリの
Package.appxmanifest
ファイルを開いてIdentity Name
値を探します。 次の手順のためにこの値をメモしてください。オプションのアプリ パッケージの
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" />
メイン アプリに
Bundle.mapping.txt
ファイルを追加します。 この「関連セット」セクションの手順に従って、両方のアプリを含む関連セットを作成します。オプションのパッケージ プロジェクトをビルドし、
..\[PathToOptionalPackageProject]\bin\[architecture]\[configuration]\Reference
で見つかったビルドからの出力のパッケージ リファレンス フォルダーに移動します。.winmd
ファイル(手順 8) はアーキテクチャに依存しないため、リファレンス フォルダーへのパスで任意のアーキテクチャを選択できることに注意してください。メイン アプリ プロジェクトからリファレンスを使用し、このフォルダーにある
.winmd
ファイルに追加します。 オプションのパッケージ プロジェクトで API セキュリティを変更するたびに、この.winmd
ファイルを更新する必要があります。 このリファレンスは、メイン アプリ プロジェクトがコンパイルに必要な情報を提供します。メイン アプリ プロジェクトでプロジェクト ビルドのプロパティに移動し、「.NET ネイティブのツール チェーンを使用してコンパイル」を選択します。 現在、C# でオプションのコード パッケージの作成には、.NET ネイティブでデバッグのみがサポートされています。 プロジェクトのデバッグ プロパティに移動し、「オプション パッケージのデプロイ」を選択します。 これにより、メイン アプリ プロジェクトをデプロイするたびに、両方のパッケージが確実に同期されます。
これらの手順が完了したら、WinRT コンポーネント マネージド プロジェクトであるかのように、オプション パッケージ プロジェクトにコードを追加できます。 メイン アプリ プロジェクトのコードにアクセスするには、オプションのパッケージ プロジェクトで公開されている公開用メソッドを呼び出します。