実行可能コードを使用したオプション パッケージ
実行可能コードを使用したオプション パッケージは、大規模または複雑なアプリを分割したり、既に公開されたアプリに追加するために役立ちます。 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 用のダウンロードとツール」を参照してください。
Note
オプション パッケージや関連セットを使用するアプリを Microsoft Store に提出するには、許可が必要です。 ストアに提出しない場合は、パートナー センターから許可を受けずにオプション パッケージや関連セットを基幹業務 (LOB) アプリやエンタープライズ アプリに使用できます。 オプション パッケージや関連セットを使用するアプリの提出許可を得る方法については、「Windows 開発者向けサポート」をご覧ください。
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
にあるビルドの出力の Reference パッケージ フォルダーに移動します。.winmd
ファイル (手順 8) はアーキテクチャに依存しないため、Reference フォルダーへのパスで任意のアーキテクチャを選択できる点に注意してください。メイン アプリ プロジェクトからの参照を、このフォルダーにある
.winmd
ファイルに追加します。 オプション パッケージ プロジェクトで API サーフェイス領域を変更するたびに、この.winmd
ファイルを更新する.winmd
。 このリファレンスでは、コンパイルするために必要な情報を含むメイン アプリ プロジェクトが提供されます。メイン アプリ プロジェクトで、プロジェクト ビルドのプロパティに移動し、[.NET ネイティブ ツール チェーンでコンパイルする] を選択します。 現在、C# でのオプションのコード パッケージの作成では .NET Native でのデバッグのみがサポートされています。 プロジェクトのデバッグ プロパティに移動し、[オプションのパッケージの配置] を選択します。 これにより、メイン アプリ プロジェクトを配置する場合は、両方のパッケージが同期されるようになります。
これらの手順が完了したら、WinRT コンポーネント マネージド プロジェクトであるかのように、オプション パッケージ プロジェクトにコードを追加できます。 メイン アプリ プロジェクト内のコードにアクセスするには、オプション パッケージ プロジェクトで公開されたパブリック メソッドを呼び出します。