MSIXVC パッケージ化ツールを使用して PC 用タイトルのパッケージ化を開始する
次の手順を使用して、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 ファイルのサンプルは、このトピックの後半にあります。 これは、.config ファイルの作成を合理化し、パートナー センター プロジェクトからの ID と名前の値を自動的に同期する MicrosoftGame.config エディターを使用するとともに参照として使用できます。
Visual C/C++ のランタイム依存関係を特定する
パッケージの Visual C/C++ ランタイム依存関係を特定します。 それらが MicrosoftGame.config で依存コンポーネントとして登録されているか、パッケージ ペイロード内に明示的にコピーされていることを確認することをお勧めします。 詳細については、「フレームワーク パッケージの依存関係」を参照してください。
シェルとストアのパッケージに表示するアイコンを作成する
次に示す MicrosoftGame.config のサンプルの各画像について、指定されたサイズにスケーリングされた対応するファイルをゲームのルート フォルダーに配置します。 または、ShellVisuals アイコンのパスが一致するように調整された画像アセットをサブディレクトリに配置できます。 MicrosoftGame.config エディターは、入力として単一のソース画像を使用してこれらの画像を生成する機能を提供します。
MakePkg.exe パッケージ ツールを含む Microsoft ゲーム開発キットをインストールします
既定では、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 パラメーターを使用しました。 セキュリティを最大にするには、/LK フラグを指定して MakePkg.exe コマンドを再実行し、安定キーで暗号化するか、/L フラグを使用して一意キーで暗号化します。 /L ではなく /LK を使用することをお勧めします。/LK で作成されたパッケージは、ローカル サイズの差分比較に使用でき、パートナー センターへの送信時に差分アップロード最適化のメリットも得られるからです。
MicrosoftGame.config のサンプル
MicrosoftGame.config というファイルを作成します。ゲーム コンテンツのルート ディレクトリにある次のコンテンツを使用し、不要なアイテムのコメントをすべて削除します。
MicrosoftGame.config は手動で作成できますが、これを作成する最善の方法は MicrosoftGame.config エディターを利用することです。 このツールを使用すると、パートナー センター プロジェクトから直接 ID と 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"/>
<!-- The fourth digit of the version number is reserved for Microsoft Store use -->
<!-- Optional: Use StoreId if your product will offer durable downloadable content (DLC) packages.
Look up the Store ID (12-character alphanumeric string) of your main application package in the Game setup -> Identity section of your product's configuration area in Partner Center. (Example: 9PNX12345AAA)
<StoreId>**REPLACE WITH STOREID**</StoreId> -->
<MSAAppId>**REPLACE WITH MSAAPPID**</MSAAppId> <!-- This value is found in the Xbox services -> Xbox Settings section in your product's configuration area in Partner Center. -->
<TitleId>**REPLACE WITH TITLEID**</TitleId> <!-- This value is found in the Game Setup -> Identity section of your product's configuration area in Partner Center. -->
<!-- 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 でフレームワーク パッケージとして提供されている場合は、再頒布可能ソフトウェアをチェーンインストールする代わりに、フレームワーク パッケージに対する依存関係を宣言することができます。
たとえば、これまで Microsoft ダウンロード サイトの dxsetup.exe redist を使って満足していた従来の DirectX ランタイムを使っている場合は、次のようにして、Windows.Universal および Windows.Desktop の依存関係と共にフレームワーク パッケージへの依存関係を宣言できます。 フレームワーク パッケージは Microsoft Store を通じて自動的に更新されるだけでなく、カスタム インストール操作ではインストール プロセスの一環として管理者の承認を必要とし、確認プロンプトが生成されるため、カスタム インストール操作を使って redist を直接インストールするよりもこの方法をお勧めします。
<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 要素)。
関連項目
Xbox 本体用タイトルのパッケージ化を開始する
MicrosoftGame.Config
Microsoft Game Development Kit ツールを利用して PC タイトルをインストールして起動する
PC Bootstrapper