ヒント
2026 年 4 月版 GDK で、MSIXVC2 がプレビュー扱いで提供開始されました。 MSIXVC2 は、更新プログラムの大幅な小型化、高速なパッケージ化、アップロード ワークフローのシンプル化を実現した次世代の PC パッケージ形式です。 新しい PC タイトルに着手しようとしているか、パッケージ方法の選択肢を評価している場合は、「MSIXVC2 パッケージの概要」および「PC 用 MSIXVC2 の使用開始方法」を参照してください。 このページの手順は、引き続き完全にサポートされる元の MSIXVC 形式に適用されます。
以下の手順に従って作成した MSIXVC パッケージは、ターゲットとなるテスト開発用 PC にサイドロードしてテストでき、さらに、パートナー センターに提出して公開できます。
Windows 10 バージョンの最小要件を確認する
MSIXVC ベースのパッケージの配置テストを行うには、Windows 10 バージョン 18362 以降が必要です。
パッケージのニーズを評価する
以下のいずれかのプロパティを含んだパッケージや、以下のいずれかの機能を必要とするパッケージの場合は、この記事内の「パッケージ化に関するその他の考慮事項と高度な機能」セクションを参照してください。
フレームワーク パッケージの依存関係
アプリが再頒布可能ソフトウェアに依存する場合、Microsoft から提供される前提条件ソフトウェアの多くについては、事前パッケージ済みバージョンを使用でき、それらを依存関係として宣言すると自動的にインストールすることが可能です。カスタム インストール操作
フレームワーク パッケージが提供されていない再頒布可能ソフトウェアにアプリが依存する場合、それらの依存コンポーネントについては、チェーンインストールすることができます。
コンテンツを準備する
タイトルのすべてのソース マテリアルを 1 つのディレクトリ内に配置します。 MSIXVC パッケージ システムで使用できないファイルや、リテール パッケージでの出荷に適さないファイルがあれば削除します。
プログラム データベース (PDB) ファイル。
ユニバーサル Windows プラットフォーム (UWP) および APPX フット プリント ファイル (AppxSignature.p7x と AppxBlockMap.xml を含む)。
以前に Microsoft Store で製品を UWP として提供したことがある場合は、これらのファイルが APPX パッケージや MSIX パッケージに関連付けられている可能性があります。 それらのファイルは削除してください。他の PC ゲーム ストアへの参照 (アセット、バイナリなど)。
パートナー センターから製品の ID 情報を取得する
Microsoft の担当者と連携して、パートナー センターで製品を作成します。 この前提条件を満たすには、パブリッシャー ID とパッケージ名がわかっている必要があります。 この記事では、この手順の詳細については説明しません。必要に応じて Microsoft の担当者にお問い合わせください。
ルート フォルダーに MicrosoftGame.config XML ファイルを作成し、次にその他のゲーム コンテンツを作成する
MicrosoftGame.config xml ファイルのサンプルを、この記事内に後で掲載しています。 このサンプルを参考にすると、MicrosoftGame.config エディターを使って効率よく .config ファイルを作成し、パートナー センター プロジェクトから取得した ID と名前の値を自動的に同期させることができます。
Visual C/C++ のランタイム依存関係を特定する
パッケージの Visual C/C++ ランタイム依存関係を特定します。 これらが MicrosoftGame.config 内に依存関係として記載されているか、パッケージ ペイロード内に明示的にコピーされていることを確認してください。 詳細については、「フレームワーク パッケージの依存関係」を参照してください。
シェルとストアのパッケージに表示するアイコンを作成する
次に示す MicrosoftGame.config のサンプルの各画像について、指定されたサイズにスケーリングされた対応するファイルをゲームのルート フォルダーに配置します。 または、画像アセットをサブディレクトリに配置し、それに対応するように ShellVisuals アイコンのパスを調整します。 MicrosoftGame.config エディターは、入力として単一のソース画像を使用してこれらの画像を生成する機能を提供します。
MakePkg.exe パッケージ ツールを含む Microsoft Game Development Kit をインストールします
既定では、Microsoft Game Development Kit (GDK) コマンド プロンプトは次のフォルダーにあります。
C:\Program Files (x86)\Microsoft GDK\Command Prompts
パッケージ レイアウト マッピング ファイルを作成する
すべてのゲーム コンテンツの入った 1 つのフォルダーが含まれるフォルダーで Microsoft Game Development Kit (GDK) コマンド プロンプトを開き、次のコマンドを実行します。
MakePkg genmap /f layout.xml /d <Your_game_folder>
このコマンドは、layout.xml というファイルを作成します (これは推奨されるファイル名ですが、任意の名前を使用できます)。 このファイルはパッケージ化の手順で使用します。 パッケージ化ツールの詳細については、「パッケージの作成 (makepkg.exe)」を参照してください。
インテリジェント デリバリーを使用してインストール サイズの削減方法を決定する
layout.xml ファイル内のコンテンツにタグ付けしてインストール サイズを減らす方法については、「インテリジェント デリバリーの概要」を参照してください。 サイズの大きいローカライズ済みアセットがある場合や、既定ではインストールせず、ゲームによってトリガーされたときにダウンロードできるようにする必要があるコンテンツがある場合は、インテリジェント デリバリーの使用を検討してください。
パッケージを作成する
次のコマンドを使用してパッケージを作成します:
MakePkg pack /f layout.xml /lt /d <Your_game_folder_name> /nogameos /pc /pd <Output_Folder_Name>
ライセンスに依存するシナリオ (例: ゲーム内ストア、試用版など) では、実際のコンテンツ ID を指定して makepkg を使用してください。 パートナー センターで、パッケージを初めて取り込む際に実際のコンテンツ ID が生成されます。 この情報は、送信したパッケージの [パッケージ] ページに表示される詳細に含まれています。
ターゲット PC で開発者モードを有効にする
[設定] を開きます。
検索フィールドに「開発者」と入力します。 表示されたオプションから、[開発者向け機能を使う] を選択します。
[開発者モード] を選択します。 システムによっていくつかの機能が追加されていることを示すダイアログ ボックスが表示されます。 次の手順に進む前に、このプロセスが完了するのを待ちます。
アプリのインストールをテストする
次のコマンドを実行します。
Wdapp install <Your_Package.msixvc>
パッケージは、開発用 PC のローカル ドライブ、またはドライブ文字にマップ済みのネットワーク上の場所に存在する必要があります。 汎用名前付け規則 (UNC) 共有からのインストールはまだサポートされていません。 進行状況が表示されていない場合は、Microsoft Store アプリを開くと、アプリ (存在する場合) の右上隅に下向き矢印で示された [ダウンロードと更新] セクションで確認できます。 または、右上隅にある省略記号 (...) を選択して [ダウンロードと更新] を選択します。
2022 年 3 月版 Microsoft Game Development Kit (GDK) の時点で、MSIXVC パッケージは [drive]:\XboxGames フォルダーに展開済みフラット ファイルとしてインストールされ、直接に内容を変更することやアクセスすることができます。 このドライブの場所は、アプリケーション管理 (wdapp.exe) を使って構成できます。 フラット ファイル インストール機能の詳細については、「フラット ファイル インストールの概要」を参照してください。
最終的なパッケージを準備してから、パートナー センターに送信する
先ほど MakePkg.exe コマンドを使ってパッケージを作成した際は、テストまたは開発用キーを使って暗号化する /LT パラメーターを指定しました。 最大限のセキュリティを確保するには、MakePkg.exe コマンドを /LK フラグ付きで再実行することにより安定版キーで暗号化するか、/L フラグを使って一意キーで暗号化します。
/L ではなく /LK の使用をおすすめします。/LK で作成されたパッケージはローカル サイズの差分比較に使用でき、パートナー センターへの送信時に差分アップロード最適化のメリットを得ることができます。
MicrosoftGame.config のサンプル
MicrosoftGame.config というファイルを作成します。ゲーム コンテンツのルート ディレクトリにある以下のコンテンツを使用し、その後、不要なアイテムのコメントがあればすべて削除します。
MicrosoftGame.config は手動でも作成できますが、MicrosoftGame.config エディターを使って作成するのが最良の方法です。 このツールを使うと、パートナー センター プロジェクトから Identity と ID の値を直接同期させることが簡単にできます。
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
<!-- Publisher should match the exact value provided in the "Package/Identity/Publisher" field of the Game setup -> Identity section of your product's configuration area in Partner Center.
Name should match the exact value provided in the "Package/Identity/Name" field of the Game setup -> Identity section of your product's configuration area in Partner Center. -->
<Identity Name="**REPLACE**"
Publisher="**REPLACE**"
Version="1.0.1.0"/>
<!-- For MSIXVC/MSIXVC2 the fourth digit of the version number is reserved for Microsoft Store use -->
<!-- These values are found in the Game Setup -> Identity section in your product's configuration area in Partner Center. -->
<StoreId>**REPLACE WITH STOREID**</StoreId>
<MSAAppId>**REPLACE WITH MSAAPPID**</MSAAppId>
<TitleId>**REPLACE WITH TITLEID**</TitleId>
<!-- Include any additional languages your title supports as appropriate -->
<Resources>
<Resource Language="en-US" />
</Resources>
<!-- Use override display name if you want to display a different title in the shell than the DefaultDisplayName from the ShellVisuals section, or if you need to localize it. -->
<!-- Configuring the Alias attribute will allow you to take advantage of Execution Alias functionality when launching your executable. For more information, please see the MicrosoftGame.config reference documentation. -->
<ExecutableList>
<Executable Name="**REPLACE**"
Id="Game"
Alias="**REPLACE**"
OverrideDisplayName="**REPLACE**"
/>
</ExecutableList>
<!-- DefaultDisplayName should match the exact value provided in the "Package/Identity/Name" field of the Game setup -> Identity section of your product's configuration area in Partner Center.
PublisherDisplayName should use the exact value provided in the "Package/Properties/PublisherDisplayName" field of the Game setup -> Identity section of your product's configuration area in Partner Center.-->
<!-- The following asset sizes apply
StoreLogo - 100x100
Square150x150Logo - 150x150
Square44x44Logo - 44x44
SplashScreenImage - 1920x1080
-->
<ShellVisuals DefaultDisplayName="**REPLACE**"
PublisherDisplayName="**REPLACE**"
StoreLogo="StoreLogo.png"
Square150x150Logo="Logo.png"
Square44x44Logo="SmallLogo.png"
Description="**REPLACE**"
BackgroundColor="#000040"
SplashScreenImage="SplashScreen.png"/>
<DesktopRegistration>
<!-- Include this section if you need to run a custom installer action with Administrator privileges the first time that your game runs.
Any executable you specify must be located under the "Installers" folder in the base folder of your game. Don't include any other files in the
Installers folder.
<CustomInstallActions>
<Folder>Installers</Folder>
<InstallActionList>
<InstallAction File="CustomInstaller.exe" Name="UniqueInstallTaskName" Arguments="/silent /example" />
</InstallActionList>
</CustomInstallActions>
-->
<DependencyList>
<!-- Omit the Dependency items if your game doesn't need them, or the entire DependencyList element. Note that your version of VCLibs may be different. See the Framework package dependencies topic of the documentation for details and guidance. -->
<KnownDependency Name="VC11"/>
</DependencyList>
<!-- Select the ProcessorArchitecture that matches your game executables. -->
<ProcessorArchitecture>x64</ProcessorArchitecture>
<!--<ProcessorArchitecture>x86</ProcessorArchitecture>-->
<!-- Include this section if your game uses Xbox services Multiplayer invites.
<MultiplayerProtocol>true</MultiplayerProtocol>
-->
</DesktopRegistration>
<!-- Include this section if your game writes files to its installation directory, and you're unable to change this by altering your source code and recompiling your game.
<ExtendedAttributeList>
<ExtendedAttribute Name="RestrictedCapability" Value="packageWriteRedirectionCompatibilityShim"/>
</ExtendedAttributeList>
-->
</Game>
パッケージ化に関するその他の考慮事項と高度な機能
一般的なソフトウェア依存関係のためのフレームワーク パッケージ
アプリが再頒布可能ソフトウェアに依存しており、その依存先ソフトウェアが Microsoft Store でフレームワーク パッケージとして提供されている場合は、再頒布可能ソフトウェアをチェーン インストールするのではなく、そのフレームワーク パッケージへの依存関係を宣言することができます。
たとえば、レガシ DirectX ランタイムを使用するアプリの場合、伝統的には Microsoft ダウンロード サイトから dxsetup.exe を取得して再頒布する形で解決されていましたが、以下のように、フレームワーク パッケージへの依存関係として Windows.Universal および Windows.Desktop への依存関係と共に宣言することができます。 これは、カスタム インストール アクションを使って再頒布パッケージを直接インストールするよりも望ましい方法です。なぜなら、フレームワーク パッケージは Microsoft Store を通じて自動的に更新できるのに対し、カスタム インストール アクションには管理者の承認が必要であり、インストール プロセスの中で確認のプロンプトが表示されるからです。
<DependencyList>
<KnownDependency Name="DX11"/>
</DependencyList>
既知の依存関係の完全なリストについては、MicrosoftGame.config 要素 - KnownDependency のドキュメントを参照してください。
インストール時には、オペレーティング システムと Microsoft Store により、このパッケージの依存関係がアプリと一緒に確実にインストールされます。 DirectX および Visual Studio C/C++ ランタイム フレームワーク パッケージへの依存関係を含め、詳細については、「フレームワーク パッケージの依存関係」を参照してください。
MOD のサポート
2022 年 3 月版 Microsoft Game Development Kit (GDK) から、Mod が既定でサポートされるようになりました。 詳細については、「Mod」をご覧ください。
カスタム インストール操作
アプリが他のインストーラー (.exe または .msi ファイル) に依存しており、アプリのインストール時にそれらをチェーン インストールする必要がある場合は、CustomInstallActions 要素を使ってそのステップを構成できます。
再頒布可能ファイルについては、VC ランタイムや DirectX などの再頒布可能 .exe ファイルや .msi ファイルをカスタム インストーラーで使用することを決定する前に、フレームワーク パッケージが提供されているかどうか、必要な前提条件ソフトウェアが含まれているかどうかを確認してください。 カスタム インストール操作の詳細については、「カスタム インストール操作」を参照してください。
制限された機能のアクセス許可
MicrosoftGame.config ファイルを構成して適切な要素を含めることに加え、作成中のタイトルで以下の機能を使うためのアクセス許可設定をアカウント マネージャーにメールで依頼する必要があります。
- カスタム インストール操作 (CustomInstallActions 要素)。
関連項目
MSIXVC2 パッケージ化の概要
PC 用 MSIXVC2 の概要
Xbox 本体用タイトルのパッケージ化を開始する
MicrosoftGame.Config
Microsoft Game Development Kit ツールを利用して PC タイトルをインストールして起動する
PC Bootstrapper