パッケージの作成 (makepkg2.exe)

アプリ パッケージを作成し、パートナー センターにパッケージをアップロードし、関連するパッケージ化操作を実行します。 makepkg2 は、MSIXVC (v1) と MSIXVC2 の両方のパッケージ形式をサポートしています。 /msixvc2 フラグを使用して、MSIXVC2 形式のパッケージを生成します。

makepkg2 command[options]

グローバル オプション

オプション 説明
/v コンソールへの詳細出力を有効にします。
/?, /h ヘルプと使用方法の情報を表示します。

コマンド

  • pack—ディスク上のファイルから新しいアプリ パッケージを作成します。
  • upload—パッケージまたはファイルのディレクトリをパートナー センターにアップロードします。
  • genkeypack /lk で使用する暗号化キーを生成します。
  • genid—製品 ID GUID とストア ID の間で変換します。
  • genmap—ディスク上のコンテンツに基づいてマッピング XML ファイルを生成します。
  • validate—パッケージを作成せずに検証を実行します。
  • localize—ディスク上のコンテンツに基づいて Resources.pri ファイルを生成します。
  • appdata—AppxManifest.xml ファイルからアプリケーション メタデータ (appdata.bin) を構築します。

pack

ディスク上のファイルから新しいアプリ パッケージを作成します。

makepkg2 pack [options]

使用例:

makepkg2 pack /msixvc2 /f layout.xml /d <sourcedir> /pc /pd <destinationdir>

オプション

オプション 説明
/msixvc2 MSIXVC2 パッケージ形式でパッケージを生成します。 このフラグがない場合、MSIXVC (v1) パッケージが生成されます。
/d <sourcedir> (必須) パッケージ化するコンテンツを含むソース ディレクトリを指定します。
/pd <destinationdir> (必須) 生成されたパッケージを配置するコピー先ディレクトリを指定します。
/f <mapfile> パッケージ化に使用するマッピング ファイルを指定します。 省略すると、既定の単一チャンク レイアウトが生成されます。
/compress <method> 出力を圧縮します。 使用可能なメソッド: Automatic (既定)、NoneAutomatic では、MSIXVC2 パッケージに Brotli を使用し、XVC/MSIXVC (v1) パッケージには圧縮を使用しません。
/pc PC で使用するパッケージを生成します。
/contentid <contentid> このパッケージが属するコンテンツ ID を指定します。
/gameos <gameos> パッケージに埋め込むゲーム OS ファイルを指定します。
/l 一意のコンテンツ ライセンスでパッケージを暗号化します。
/lk <key.lekb> 指定されたキー ファイルを使用して、コンテンツ ライセンスでパッケージを暗号化します。 キー ファイルを生成するには、genkey を使用します。
/productid <productid> このパッケージが属する製品 ID を指定します。
/maxencryptionfragments <count> パッケージ メタデータで予約する暗号化フラグメントの数を指定します (XVC1 のみ)。
/priorpackage <OldPackage.msixvc> 以前のパック操作で作成された XVC または MSIXVC パッケージ ファイルを指定します。 コンテンツの更新サイズの比較に使用されます。
/loggable ログ ファイルに書き込むことが適さない制御文字を含む出力を抑制します。
/symbolpaths <symbolpaths> シンボル バンドル時のシンボル解決検索の追加パスを指定します。 パスは、セミコロン区切りのリストとして指定されます。
/skipsymbolbundling シンボル バンドルの手順をスキップすることを指定します。
/skipvalidation 検証の手順をスキップすることを指定します。
/validationcritical サブミッション バリデーターでのエラーを、MakePkg プロセスの重大なエラーとして扱うことを指定します。
/openvalidationlog 検証実行後に、XML ファイルを開くための既定のアプリケーションでサブミッション バリデーターのログ ファイルを自動的に開くよう指定します。
/validationlanguage <lang> サブミッション バリデーター ログ ファイルをビルドするための追加言語を指定します。
/validationpath <path> SubmissionValidator.dll の読み込みに使用するパスを指定します。
/updatesubval 現在のバージョンが既に一致している場合を除き、検証実行前に、SubmissionValidator.dll の最新バージョンを https://aka.ms/currentsubvalzip から自動的にダウンロードします。 /validationpath と併用して、カスタムのダウンロード場所を指定できます。 ダウンロードに失敗した場合、検証は現在のバージョンで続行されます。

解説

既定では、テスト目的で、makepkg2 pack はすべての開発キットによって認識される既知の暗号化キーを使用してパッケージを暗号化します。 これらのパッケージは暗号化によって保護されていません。

アップロードされたパッケージをさらに強化するために、XVC と MSIXVC (v1) パッケージでは、必要に応じて /l または /lk 暗号化モードを使用できます。 /l パッケージは、アップロード前にテスト用に開発キットや PC にインストールすることはできません。 /lk パッケージは、アップロード前にテスト用に開発キットにのみインストールできます。 アップロードの暗号化モードにかかわらず、Xbox サービスは常に Microsoft が管理する暗号化キーを使用して配布用パッケージを暗号化します。

MSIXVC2 パッケージでは、クライアント側のアップロード暗号化は使用されません。 Xbox サービスは、配布のためのすべての暗号化を処理します。

/lk で使用するキー ファイルを生成するには、genkey コマンドを使用します。


upload

指定したパッケージをパートナー センターにアップロードします。 upload コマンドは、/d が指定されている場合、ルース ファイルからパッケージ化し、1 回の操作でアップロードすることもできます。

ブランチまたはフライトが指定されていない場合、パッケージは main ブランチにアップロードされます。

EKB ファイルと SubmissionValidator ログ ファイルは、パッケージと同じディレクトリに配置する必要があり、自動的にアップロードされます。 シンボル バンドルが存在する場合は、それもアップロードされます。 StoreId はパッケージから抽出されますが、パッケージが StoreId なしで生成された場合は、必要に応じて指定できます。

makepkg2 upload [options]

使用例 (ビルド済みパッケージをアップロードする):

makepkg2 upload /pd <package_directory> /branch <branch> /auth CacheableBrowser

使用例 (ルース ファイルからパッケージ化してアップロードする):

makepkg2 upload /d <sourcedir> /msixvc2 /pc /branch <branch>

オプション

パッケージ ソース オプション

オプション 説明
/pd <package_directory> パッケージが存在するディレクトリ。 この場所に複数のパッケージがある場合は、ディレクトリ名ではなく完全なパッケージ ファイル名を指定します。
/d <sourcedir> パッケージ化するコンテンツを含むソース ディレクトリを指定します。 指定されている場合、upload コマンドはコンテンツをパッケージ化し、1 回の操作でアップロードします。
/f <mapfile> パッケージ化に使用するマッピング ファイルを指定します (/d と併用)。
/msixvc2 MSIXVC2 パッケージ形式でパッケージを生成します (/d と併用)。
/compress <method> 出力を圧縮します。 使用可能なメソッド: Automatic (既定)、NoneAutomatic では、MSIXVC2 パッケージに Brotli を使用し、XVC/MSIXVC (v1) パッケージには圧縮を使用しません。
/pc PC で使用するパッケージを生成します (/d と併用)。
/productid <productid> このパッケージが属する製品 ID を指定します。

コピー先のオプション

オプション 説明
/storeid <storeId> パッケージに使用するストア ID。 指定されていない場合、Store ID はパッケージから抽出されます。
/branch <branch> パッケージをアップロードするブランチ。 ブランチもフライトも指定されていない場合、既定値は main です。
/flight <flight> パッケージをアップロードするフライト。 ブランチが指定されている場合は使用できません。
/market <market> パッケージをアップロードする市場。 既定値は default です。
/disclayout <path> パッケージがディスクで出荷され、複数のディスクが必要な場合に指定する、ディスク レイアウト ファイルへのオプションのパス。

認証オプション

オプション 説明
/auth <method> 使用する認証方法。 既定値: CacheableBrowser。 複数の認証方法は、MSIXVC2 アップロードでのみ使用可能です。 XVC と MSIXVC (v1) のアップロードでは、CacheableBrowser のみ使用できます。 これらの形式で高度な認証を行う場合は、PackageUploader を使用します。 詳細については、「認証方法」を参照してください。
/tenantid <tenantId> パッケージをアップロードするテナント。 指定されていない場合、ユーザーの既定のテナントが使用されます。
/clientid <clientId> 認証に使用するクライアント ID (アプリケーション ID)。 ManagedIdentityClientCertificateClientSecret 認証方法に必要です。
/clientsecret <secret> 認証に使用するクライアント シークレット。 /auth ClientSecret が必要です。
/certthumbprint <thumbprint> ClientCertificate 認証に使用する証明書のサムプリント。
/certstore <store> 証明書ストア名 (例: My) です。 既定値は My です。
/certlocation <location> 証明書の場所 (例: CurrentUser または LocalMachine) です。 既定値は CurrentUser です。
/certpassword <password> 証明書ファイルのパスワード (PFX/PKCS12)。 パスワードで保護された証明書ファイルを使用する場合にのみ必要です。
/resourceid <resourceId> ManagedIdentityFederated 認証用の Azure リソース ID。 /auth ManagedIdentityFederated を使用する場合に必要です。

検証とシンボル オプション

オプション 説明
/skipvalidation 検証の手順をスキップすることを指定します。
/validationcritical サブミッション バリデーターでのエラーを重大なエラーとして扱うことを指定します。
/validationlanguage <lang> サブミッション バリデーター ログ ファイルをビルドするための追加言語を指定します。
/validationpath <path> SubmissionValidator.dll の読み込みに使用するパスを指定します。
/updatesubval 検証を実行する前に、SubmissionValidator.dll の最新バージョンをダウンロードします。 詳細については、「pack」を参照してください。
/symbolpaths <symbolpaths> シンボル バンドル時のシンボル解決検索の追加パスを指定します。 セミコロンで区切られたリスト。
/skipsymbolbundling シンボル バンドルの手順をスキップすることを指定します。

認証方法

upload コマンドでは、次の認証方法が使用可能です。

メソッド 説明
CacheableBrowser 対話型サインイン用のブラウザーを開き、その後のアップロードのために資格情報をキャッシュします。 これが既定値です。
Browser 資格情報をキャッシュせずに対話型サインイン用のブラウザーを開きます。
AzureCli Azure CLI の資格情報を使用します。 既に az login 経由で認証されている場合に便利です。
AzurePipelines Azure Pipelines サービス接続を使用します。 Azure DevOps の CI/CD パイプラインに最適です。
ManagedIdentity Azure マネージド ID を使用します。 /clientid が必要です。
ManagedIdentityFederated フェデレーション マネージド ID を使用します。 /clientid/resourceid が必要です。
ClientSecret クライアント ID とシークレットを使用します。 /clientid/clientsecret が必要です。
ClientCertificate クライアント証明書を使用します。 /clientid/certthumbprint が必要です。
Environment 環境変数の資格情報を使用します。
Default 複数のメソッドを順番に試行します。

genkey

pack /lk オプションで使用する暗号化キー ファイル (LEKB) を生成します。

makepkg2 genkey [options]

オプション

オプション 説明
/ekb <ekbfile> 生成された LEKB ファイルを保存するパスを指定します。 makepkg pack によって生成される .ekb ファイルと区別するために、.lekb 拡張子を使用することをお勧めします。

genid

製品 ID GUID とストア ID の間で変換します。

makepkg2 genid [options]

オプション

オプション 説明
/storeid <storeId> 変換するストア ID を指定します。
/productid <productId> 変換する以前に生成された製品 ID GUID を指定します。

genmap

ディスク上のコンテンツに基づいてマッピング XML ファイルを生成します。 生成されたファイルには単一チャンクが含まれており、コンテンツを複数のチャンクに分割したり、インテリジェント デリバリー タグを追加したりするために編集できます。

makepkg2 genmap /f <mapfile> /d <contentdirectory>

オプション

オプション 説明
/f <mapfile> 生成されるマッピング ファイルのパスを指定します。
/d <contentdirectory> マッピング ファイルに追加するコンテンツを含むディレクトリを指定します。

validate

パッケージを作成せずにアプリケーション パッケージを作成するための検証手順を実行します。 これは、完全なパック操作にコミットする前に、コンテンツと構成が正しいことを確認するのに役立ちます。

makepkg2 validate [options]

validate コマンドは pack と同じオプションを受け付けます。


localize

ディスク上のコンテンツに基づいて Resources.pri ファイルを生成します。

makepkg2 localize /d <sourcedir> [options]

オプション

オプション 説明
/d <sourcedir> (必須) パッケージ化するコンテンツを含むソース ディレクトリを指定します。
/resw <reswdir> RESW ファイルがルート ディレクトリ直下にない場合に指定する、ルート ディレクトリからの相対的なオプションのディレクトリ パス。
/pd <outputdir> 生成される Resources.pri ファイルのオプションの出力ディレクトリ。 指定されていない場合、ファイルはコンテンツ ディレクトリに配置されます。
/t <tempdir> Resources.pri のコンテンツを XML 形式に変換するためのオプションのディレクトリです。
/gc <gameconfigpath> コンテンツディレクトリのベースにない場合、または MicrosoftGame.config 以外の名前の場合の MicrosoftGame.config ファイルへのオプションのパス。

appdata

AppxManifest.xml ファイルに基づいて、アプリケーション メタデータ (appdata.bin) を構築します。

makepkg2 appdata [options]

オプション

オプション 説明
/f <appmanifest> AppxManifest.xml ファイルへのパスを指定します。
/d <appmanifestdir> AppxManifest.xml ファイルを含むディレクトリを指定します。
/pd <outputdir> 生成されたファイルの出力場所を指定します。 既定では、AppxManifest.xml ファイルの隣にあります。
/nocrashdump 障害が発生した場合に、アプリケーションがクラッシュ ダンプの自動生成とアップロードをオプトアウトすることを指定します。

makepkg との違い

makepkg2makepkg の後継であり、次の追加機能が含まれています。

機能 makepkg makepkg2
MSIXVC2 形式 サポートされない /msixvc2 フラグ
パートナー センターにアップロードする Basic (PackageUploader をラップ) 組み込みの upload コマンド
Compression サポートされない /compress オプション
アップロードの認証 CacheableBrowser のみ 10 種類の認証方法

既存の makepkg コマンド (packgenmapgenidgenkeyvalidatelocalizeappdata) は、makepkg2 でも同じように動作します。 makepkg コマンドを使用するスクリプトは、変更せずに makepkg2 に切り替えることができます。

注意

MSIXVC (v1) パッケージ化の場合、makepkgmakepkg2 の両方がサポートされます。 MSIXVC2 パッケージ化には、makepkg2 が必要です。

関連項目

MSIXVC2 パッケージ化の概要
PC 用 MSIXVC2 の概要
パッケージの作成 (makepkg.exe)
配置パッケージのスキーマ
Xbox Game パッケージ マネージャー
パッケージのアップロードの自動化