デスクトップアプリのスタート画面用タイルを登録する3(makepri.exeを使ってResources.priを作成)

前回は、デスクトップアプリのアプリアイコンのタイルを高DPIおよびはハイコントラストに対応するためには、Resources.priが必要で、それを作成するためにmakepri.exeを利用する必要があることまで説明しました。今回は、その続きの説明です。

前回、makepri.exeのある場所を確認できました。このコマンドを使って、Resources.priを作成するのですが、その使い方を確認します。

Resources.priの作成手順

makepriコマンドを使ってResources.priを作成するには、入力データの準備が必要です。順番に説明します。

画像ファイルを指定のフォルダー構成で準備する

makepri.exeでResources.priを作成するには、事前に対象の画像ファイルを指定のルールに従って配置しておく必要があります。

タイルのカスタマイズ指定ファイル (*.VisualElementsManifest.xml)に、画像へのパスとして、Assets\Tiles\FilePackageApp_150x150Logo.png を設定する前提で説明します。また、Makepri.exeに指定するリソースフォルダーはDataであるとします。

この場合、Dataフォルダーには以下の構成のサブフォルダーを作成します。

  • Data\Assets\Tiles\en-US\

そして、en-USフォルダーにすべての画像ファイル(マイクロソフトの推奨に従う場合は24個)を配置します。全言語向けで同じ画像を使う場合でも、必ずen-USフォルダーを作成し、そのフォルダーに画像を配置します。

もし、画像ファイルに文字列が埋め込んであり、英語向けと日本語向けで別の画像を使いたい場合は、以下の構成のサブフォルダーを作成します。

  • Data\Assets\Tiles\en-US\
  • Data\Assets\Tiles\ja-JP\

英語向けの画像はen-USフォルダーに配置し、日本語向けの画像はja-JPフォルダーに配置します。

必ずen-USフォルダーを作成」する理由は、言語フォルダーを作成せずに画像を配置した場合、makepri.exeで作成されるResources.priが、

  • Resources.pri
  • Resources.scale-140.pri
  • Resources.scale-180.pri

の三つに分かれてしまいます。デスクトップアプリのタイル用には後者二つのファイルが利用されず、高DPIに対応できません。画像を配置するときにen-USの言語フォルダーを作成すると一つのResources.priファイルとして作成されます。

makepriの構成ファイルを用意する

makepri.exeを使ってResources.priを作成するためには、画像ファイル以外に構成ファイルも必要となります。この構成ファイルもmakepri.exeを使って作成できます。作成する構成ファイルをAssetsConfig.xmlとした場合、以下の引数を指定して作成します。

makepri.exe createconfig /cf AssetsConfig.xml /dq lang-en-US_scale-100_contrast-high /pv 6.3

Windows 10以降のSDKにあるmakepri.exeを使う場合は、/pv 6.3 も必ず設定してください。これは、作成する構成ファイルが、Windows 8.1用(バージョン6.3用)のものであることを意味します。これを省略した場合、Windows 10用の構成ファイルが作成されます。Windows 10用の構成ファイルを使用して作成したResources.priでは、Windows 8.1の環境でタイルの画像が正しく表示されません。

Resources.priを作成する

ここまででResources.priを作成する準備が整いました。Resources.priは以下の引数を指定して作成します。

makepri.exe new /pr Data /cf AssetsConfig.xml /in FilePackageApp /of Resources.pri

ここで、それぞれのオプション引数の意味は以下の通りです。

  • /pr には用意した画像フォルダーのトップフォルダーを指定します。今回は画像を Data\Assets\Tiles\en-US\ のようにDataフォルダーの配下に配置したので、Dataを指定します。
  • /cf には用意した構成ファイルを指定します。
  • /in にはアプリのパッケージ名を指定します。デスクトップアプリの場合は製品名でよいでしょう。
  • /of には、作成するResources.priのパスを指定します。

この例では、用意したフォルダー・ファイル、および、作成するResources.priファイルが、すべてカレントフォルダーに存在する前提で記載しています。カレントフォルダーにない場合は、フルパスや相対パスで指定します。

これでResources.priを作成できました。今までに作成した

  • Assetsフォルダー
  • FilePackageApp.VisualElementsManifest.xml
  • Resources.pri

をFilePackageApp.exeファイルと同じフォルダに配置することにより、タイルの高DPIおよびハイコントラストに対応できます。

これでアプリのタイルの高DPIおよびハイコントラストに対応できました。しかし、これらの手順を、画像を変更するたびに行うのは大変です。アプリのビルド時に一緒にResources.priをビルドしてほしいです。次回はResources.priを作成するVisual Studioのプロジェクトを作成する手順を説明したいと思います。

コメントを残す