Windows 8.1 ストア アプリ: デバイスにリソースが必要かどうかにかかわらず、必ずリソースをデバイスにインストールする

 

Windows と Windows Phone に適用されます

アプリ パッケージにさまざまなリソースを含めることで、アプリのインストール時に必要なリソースに関係なく、リソースがすべてのデバイスにアプリと共にインストールされるようにすることができます。たとえば、デバイスのユーザー言語設定と一致する言語だけでなく、複数の言語のユーザー インターフェイス文字列がアプリと共にインストールされるようにすることができます。この方法を使用すると、ユーザーはインターネットに接続しなくても言語設定などの設定を変更できます。また新しい設定に対応する最適なリソースにデバイスを切り替えることができます。

アプリ パッケージにリソースを含めると、アプリのサイズが大きくなります。アプリのサイズを小さくするには、リソース パッケージにリソースを含めて、ユーザーが後でダウンロードできるようにします。ほとんどのアプリでは、リソース パッケージにより、ユーザーは最小限の使用容量で最大限のエクスペリエンスを得られますが、リソース パッケージが適さないアプリもあります。たとえば、多言語辞書や翻訳ツールなど、言語が随時変更されるアプリです。そのようなアプリでは、さまざまなリソースをアプリ パッケージに含めることがあります。

構成ファイルを追加してリソースをアプリ パッケージに含めることができます。また、プロジェクト ファイルを直接編集することに慣れている場合は、ファイルを直接編集してこのタスクを実行できます。

オプション 1: ソリューションに構成ファイルを追加する

  1. ソリューション エクスプローラーでアプリのプロジェクトを右クリックし、[追加] をポイントして、[新しい項目] をクリックします。

  2. [新しい項目の追加] ダイアログ ボックスで [XML ファイル] テンプレートを選択し、ファイルに priconfig.packaging.xml という名前を付けてから、[追加] をクリックします。

  3. ファイルの内容を次の XML に置き換えます。

    <packaging>
        <autoResourcePackage qualifier="Language" />
        <autoResourcePackage qualifier="Scale" />
        <autoResourcePackage qualifier="DXFeatureLevel" />
    </packaging>
    
  4. リソース パックに含めないリソースのカテゴリを表す XML 行を削除します。次の例は、Language 修飾子が削除された後の priconfig.packaging.xml ファイルの内容を示しています。

    <packaging>
        <autoResourcePackage qualifier="Scale" />
        <autoResourcePackage qualifier="DXFeatureLevel" />
    </packaging>
    

    この例で、すべての言語リソースは、アプリ バンドルのアプリ パッケージに含まれます。ユーザーはデバイスのユーザー言語設定に関係なくそれらのリソースをダウンロードします。

  5. priconfig.packaging.xml ファイルを保存して閉じます。

  6. Language 修飾子を削除する場合は、priconfig.default.xml という名前の別の XML ファイルをプロジェクトに追加し、そのファイルの内容を次の XML に置き換えます。

    <default>
      <qualifier name="Language" value=Value />
    </default>
    

    注意

    Scale または DXFeatureLevel 修飾子を削除し、Language 修飾子を削除しない場合は、priconfig.default.xml ファイルをプロジェクトに追加する必要はありません。

    Value プレースホルダーを、アプリ パッケージに含める各言語リソースの言語コードに置き換えます。次に示しているのは、Language 修飾子の Value プレースホルダーを言語コードのリストに置き換えた後の XML の例です。

    <default>
      <qualifier name="Language" value=”en;ja;de” />
      </default>
    
  7. ソリューション エクスプローラーで、priconfig.packaging.xml ファイルをクリックします。

  8. [プロパティ] ウィンドウで、プロジェクトの言語に応じて、次のプロパティの値を変更します。

    • C# および VB プロジェクトの場合は、[ビルド アクション] プロパティを [なし] に設定します。

    • JavaScript プロジェクトの場合は、[パッケージ アクション] プロパティを [なし] に設定します。

    • C++ プロジェクトの場合は [コンテンツ] プロパティを [False] に設定します。

  9. priconfig.default.xml ファイルをプロジェクトに追加した場合は、プロジェクトの言語に応じて、そのファイルの [ビルド アクション] プロパティを [なし] に、[パッケージ アクション] プロパティを [なし] に、または [コンテンツ] プロパティを [False] に設定します。

  10. [ビルド] メニューの [ソリューションのビルド] をクリックし、アプリ パッケージを作成します。

    アプリ パッケージの作成ウィザードの [パッケージの選択と構成] ページで、パッケージのアプリケーション バンドルの生成を選択します。「Windows 8.1 アプリ パッケージの作成」を参照してください。

  11. メモ帳で ProjectFolder**\obj\**ReleaseConfiguration フォルダーの split.priconfig.xml ファイルを開きます。

  12. 削除した修飾子がリソース修飾子の一覧に表示されていないことを確認します。

priconfig.packaging.xml ファイルの名前変更

構成ファイルには必要な任意の名前を付けることができます。ただし、priconfig.packaging xml 以外の名前を付ける場合は、ビルド プロパティをプロジェクト ファイルに追加する必要があります。

  1. ソリューション エクスプローラーで、アプリのプロジェクトを右クリックし、[プロジェクトのアンロード] をクリックします。

  2. プロジェクトを再度右クリックし、[AppName**.csprojの編集**] または [AppName**.vbproj** の編集] をクリックします。

  3. プロジェクト ファイルで、最初の <PropertyGroup> 要素の開始タグと終了タグの間に次の XML 行を追加します。

    <AppxPriConfigXmlPackagingSnippetPath>FilePath</AppxPriConfigXmlPackagingSnippetPath>
    

    重要

    FilePath を、ファイルの名前を含む構成ファイルへのパスに置き換えます。

  4. プロジェクト ファイルを保存して閉じます。

  5. ソリューション エクスプローラーでプロジェクトを右クリックし、[プロジェクトの再読み込み] をクリックします。

  6. ソリューションをビルドし、パッケージを作成します。

注意

priconfig.default.xml ファイルをプロジェクトに追加した場合は、そのファイルの名前を変更することもできます。そのファイルの名前を変更する方法については、「priconfig.default.xml ファイルの名前変更」を参照してください。

オプション 2: プロジェクト ファイルを変更する (詳細)

  1. アプリのプロジェクト ファイルをメモ帳で開きます。

  2. プロジェクト ファイルで、最初の <PropertyGroup> 要素の開始タグと終了タグの間に次の XML 行を追加します。

    <AppxBundleAutoResourcePackageQualifiers>Language|Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers>
    
  3. この XML 行から、リソース パックに含めないリソースのカテゴリを削除します。次の例は、Language 修飾子が削除された後の XML 行を示しています。

    <AppxBundleAutoResourcePackageQualifiers>Scale|DXFeatureLevel</AppxBundleAutoResourcePackageQualifiers>
    

    この例で、すべての言語のリソースは、アプリ バンドルのアプリ パッケージに含まれます。ユーザーはデバイスの言語設定に関係なくそれらのリソースをダウンロードします。

  4. Language 修飾子を削除する場合は、最初の <PropertyGroup> 要素の開始タグと終了タグの間に次の XML 行を追加します。

    <AppxDefaultResourceQualifiers>Language=Value</AppxDefaultResourceQualifiers>
    

    注意

    Scale または DXFeatureLevel 修飾子を削除し、Language 修飾子を削除しない場合は、この行を追加する必要はありません。

    Value プレースホルダーを、アプリ パッケージに含める各言語リソースの言語コードに置き換えます。次に示しているのは、Language 修飾子の Value プレースホルダーを言語コードのリストに置き換えた後の XML の例です。

    <AppxDefaultResourceQualifiers>Language=en;ja;de</AppxDefaultResourceQualifiers>
    
  5. プロジェクト ファイルを保存して閉じます。次に、Visual Studio でファイルを再読み込みします。

  6. ソリューションをビルドし、アプリ パッケージを作成します。

    アプリ パッケージの作成ウィザードの [パッケージの選択と構成] ページで、パッケージのアプリケーション バンドルの生成を選択します。「Windows 8.1 アプリ パッケージの作成」を参照してください。

  7. メモ帳で ProjectFolder**\obj\**ReleaseConfiguration フォルダーの split.priconfig.xml ファイルを開きます。

  8. 削除した修飾子がリソース修飾子の一覧に表示されていないことを確認します。

参照

アプリ バンドルの展開
アプリ バンドル
アプリ バンドルを生成するかどうかを決定する
リソース パッケージ
リソース管理システム
アプリ リソースの定義 (C#/VB/C++ と XAML を使用するアプリ)
アプリ リソースの定義 (JavaScript と HTML を使用するアプリ)