MakePri.exe を使用して手動でリソースをコンパイルするCompile resources manually with MakePri.exe

MakePri.exe は、PRI ファイルを作成およびダンプするために使用できるコマンド ライン ツールです。MakePri.exe is a command line tool that you can use to create and dump PRI files. このツールは、Microsoft Visual Studio の MSBuild の一部として統合されていますが、パッケージを手動で作成したり、カスタム ビルド システムを使って作成する場合にも使うことができます。It is integrated as part of MSBuild within Microsoft Visual Studio, but it could be useful to you for creating packages manually or with a custom build system.

注意

チェックするときに MakePri.exe がインストールされている、管理されているアプリの UWP 用 Windows SDK Windows ソフトウェア開発キットのインストール中にオプション。MakePri.exe is installed when you check the Windows SDK for UWP Managed Apps option while installing the Windows Software Development Kit. パスにインストールされて%WindowsSdkDir%bin\<WindowsTargetPlatformVersion>\x64\makepri.exe(およびその他のアーキテクチャのという名前のフォルダーの)。It is installed to the path %WindowsSdkDir%bin\<WindowsTargetPlatformVersion>\x64\makepri.exe (as well as in folders named for the other architectures). たとえば、C:\Program Files (x86)\Windows Kits\10\bin\10.0.17713.0\x64\makepri.exe と記述します。For example, C:\Program Files (x86)\Windows Kits\10\bin\10.0.17713.0\x64\makepri.exe.

PRI ファイルのサイズ制限は、64 キロバイトです。The size limit on a PRI file is 64 kilobytes.

このセクションの内容In this section

トピックTopic 説明Description
MakePri.exe のコマンド ライン オプションMakePri.exe command-line options MakePri.exe には、createconfigdumpnewresourcepackversioned コマンドのセットが含まれます。MakePri.exe has the set of commands createconfig, dump, new, resourcepack, and versioned. このトピックでは、コマンド ライン オプションの使用について説明します。This topic details the command-line options for their use.
MakePri.exe 構成ファイルMakePri.exe configuration file ここでは、MakePri.exe XML 構成ファイルのスキーマについて説明します。This topic describes the schema of the MakePri.exe XML configuration file.
MakePri.exe 形式に固有のインデクサーMakePri.exe format-specific indexers このトピックでは、リソースのインデックスを生成するために MakePri.exe ツールによって使われる形式に固有のインデクサーについて説明します。This topic describes the format-specific indexers used by the MakePri.exe tool to generate its index of resources.

MakePri.exe のコマンド ライン オプションMakePri.exe command-line options

MakePri.exe には、createconfigdumpnewresourcepackversioned コマンドのセットが含まれます。MakePri.exe has the set of commands createconfig, dump, new, resourcepack, and versioned. コマンド ライン オプションの使い方について詳しくは、「MakePri.exe のコマンド ライン オプション」をご覧ください。For details of their use, see MakePri.exe command-line options.

MakePri.exe 構成MakePri.exe configuration

PRI XML 構成ファイルは、どのリソースをどのようにインデックス化するかを制御します。The PRI XML configuration file dictates how and what resources are indexed. 構成 XML のスキーマについては、「MakePri.exe 構成」をご覧ください。The schema of the configuration XML is described in MakePri.exe configuration.

形式に固有のインデクサーFormat-specific indexers

MakePri.exe は、通常、newversionedresourcepack オプションと共に使用されます。MakePri.exe is typically used with the new, versioned, and resourcepack options. これらのオプションを使うと、ソース ファイルがインデックス化され、リソースのインデックスが生成されます。In those cases it indexes source files to generate an index of resources. MakePri.exe は、さまざまな別個のインデクサーを使って異なるソース リソース ファイルまたはリソースのコンテナーを読み取ります。MakePri.exe uses various individual indexers to read different source resource files or containers for resources. 最も単純なインデクサーは、リソース (.jpg 画像 や .png 画像など) のフォルダーの内容をインデックス化するフォルダー インデクサーです。The simplest indexer is the folder indexer, which indexes the contents of a folder for resources such as .jpg or .png images. 詳細については、「MakePri.exe の形式に固有のインデクサー」をご覧ください。For more info, see MakePri.exe format-specific indexers.

MakePri.exe の警告およびエラー メッセージMakePri.exe warnings and error messages

既定の言語のリソースの言語 '< 言語 >' が見つかりませんでしたが、リソースが見つかりません: '< 言語 >'。Resources found for language(s) '<language(s)>' but no resources found for default language(s): '<language(s)>'. 既定の言語を変更するか、既定の言語でのリソースを限定します。Change the default language or qualify resources with the default language.

MakePri.exe または MSBuild ファイルなど、言語修飾子でマークされる表示される特定の名前付きリソースの文字列リソースを検出した場合、この警告が表示されますが、既定の言語の候補が検出されません。This warning is displayed when MakePri.exe or MSBuild discovers files or string resources for a given named resource that appear to be marked with language qualifiers, but no candidate is found for a default language. ファイルやフォルダーの名前に修飾子を使用するプロセスについては、「言語、スケール、その他の修飾子用にリソースを調整する」をご覧ください。The process for using qualifiers in file and folder names is described in Tailor your resources for language, scale, and other qualifiers. ファイルやフォルダーの名前に言語名を含めることはできますが、リソースはその明示された既定の言語に対して修飾されているとは見なされません。A file or folder may have a language name in it, but no resources are discovered that are qualified for the exact default language. たとえば、プロジェクトで使う既定の言語が "en-US" で、"de/logo.png" という名前のファイルがプロジェクトにある場合に、既定の言語の "en-US" でマークされたファイルがないと、この警告が出力されます。For example, if a project uses "en-US" as the default language and has a file named "de/logo.png", but does not have any files that are marked with the default language "en-US", this warning will appear. この警告が出力されないようにするには、ファイルまたは文字列リソースを既定の言語で修飾するか、または既定の言語を変更する必要があります。In order to remove this warning, either file(s) or string resource(s) should be qualified with the default language, or the default language should be changed. 既定の言語を変更するには、Visual Studio でソリューションを開いた状態で、Package.appxmanifest を開きます。To change the default language, with your solution open in Visual Studio, open Package.appxmanifest. [アプリケーション] タブで、既定の言語が適切に設定されている ("en"や "en-us" など) ことを確認します。On the Application tab, confirm that the Default language is set appropriately (for example, "en" or "en-US").

ない既定のインスタンスまたはニュートラル リソースが指定された ''。No default or neutral resource given for ''. アプリケーション例外がスローされる特定のユーザーの構成、リソースを取得するときにします。The application may throw an exception for certain user configurations when retrieving the resources.

MakePri.exe または MSBuild ファイルなどのリソースはクリアいません言語修飾子でマークされる表示されるリソースを検出した場合、この警告が表示されます。This warning is displayed when MakePri.exe or MSBuild discovers files or resources that appear to be marked with language qualifiers for which the resources are unclear. 修飾子はありますが、実行時にそのリソース識別子に対して特定のリソース候補を返すことができるという保証がありません。There are qualifiers, but there is no guarantee that a particular resource candidate can be returned for that resource identifier at run time. 特定の言語、住んでいる地域、またはその他の修飾子のリソース候補について、既定値であるかまたはユーザーのコンテキストに常に一致することが検出されない場合、この警告が表示されます。If no resource candidate for a particular language, homeregion, or other qualifier can be found that is a default or will always match the context of a user, this warning will be displayed. 実行時、ユーザーの言語設定や住んでいる地域などの特定のユーザー構成に関して ([設定] > [時刻と言語] > [地域と言語])、リソースを取得するために使われた API が予期しない例外をスローすることがあります。At run time, for particular user configurations such as a user's language preferences or home location (Settings > Time & Language > Region & language), the APIs used to retrieve the resource may throw an unexpected exception. この警告が出力されないようにするには、既定のリソースを用意する必要があります。たとえば、プロジェクトの既定の言語やグローバルな住んでいる地域 (homeregion-001) のリソースを用意します。In order to remove this warning, default resources should be provided, such as a resource in the project's default language or global home region (homeregion-001).

ビルド システムでの MakePri.exe の使用Using MakePri.exe in a build system

ビルドするプロジェクトの種類に応じて、ビルド システムで MakePri.exe の newversioned、または resourcepack コマンドを使う必要があります。Build systems should use the MakePri.exe new, versioned, or resourcepack command, depending on the type of project being built. 新しい PRI ファイルを作成するビルド システムでは、new コマンドを使う必要があります。Build systems that create a fresh PRI file should use the new command. 反復を使って内部オフセットの互換性を確認するビルド システムでは、versioned コマンドを使うことができます。Build systems that must ensure compatibility of internal offsets through iterations can use the versioned command. リソースの追加バリアントを格納する PRI ファイルを作成し、そのバリアントに対して新しいリソースが追加されないことを確認するビルド システムでは、resourcepack コマンドを使う必要があります。Build systems that must create a PRI file that contains additional variants of resources, with validation to ensure that no new resources are added for that variant, should use the resourcepack command.

インデックスを作成するソース ファイルを明示的にコントロールする必要があるビルド システムでは、フォルダーをインデックス化する代わりに、ResFiles インデクサーを使うことができます。Build systems that require explicit control over source files that get indexed can use the ResFiles indexer instead of indexing a folder. また、ビルド システムでは、複数のインデックス パスをさまざまな形式に固有のインデクサーと共に使って、単一の PRI ファイルを生成できます。Build systems can also use multiple index passes with different format-specific indexers to generate a single PRI file.

さらに、ビルド システムでは、PRI 形式に固有のインデクサーを使って、ビルド済みの PRI ファイルを他のコンポーネント (クラス ライブラリ、アセンブリ、SDK、DLL など) のパッケージの PRI に追加できます。Build systems can also use the PRI format-specific indexer to add pre-built PRI files into the PRI for the package from other components, such as class libraries, assemblies, SDKs, and DLLs.

他のコンポーネント、クラス ライブラリ、アセンブリ、DLL、SDK 用に PRI ファイルをビルドする場合は、initialPath 構成を使って、格納先のアプリと競合しない独自のサブリソース マップがコンポーネント リソースにあることを確認します。When PRI files are built for other components, class libraries, assemblies, DLLs, and SDKs, the initialPath configuration should be used to ensure component resources have their own sub resource maps that don't conflict with the app they're included in.