MakePri.exe command-line options
MakePri.exe has the set of commands createconfig
, dump
, new
, resourcepack
, and versioned
. This topic details the command-line options for their use.
Note
MakePri.exe is installed when you check the Windows SDK for UWP Managed Apps option while installing the Windows Software Development Kit. It is installed to the path %WindowsSdkDir%bin\<WindowsTargetPlatformVersion>\x64\makepri.exe
(as well as in folders named for the other architectures). For example, C:\Program Files (x86)\Windows Kits\10\bin\10.0.17713.0\x64\makepri.exe
.
Getting help from the command-line
You can run MakePri.exe help
or MakePri.exe /?
to see the commands that you can use with MakePri.exe. You can also issue MakePri.exe <command> /?
to see specifics about a command and, in very rare cases, even MakePri.exe <command> <option>
to see specifics about an option.
MakePri commands
C:\>makepri help
Usage:
------
MakePri.exe <command> [options]
Example:
--------
MakePri.exe new /cf C:\MyApp\priconfig.xml /pr C:\MyApp\src\ /in PackageName
Description:
------------
Creates, dumps, and performs utility functions on a PRI file. A PRI file is
an index of application resources, such as strings and image files.
Command Options:
----------------
MakePri.exe createconfig Creates a PRI config file for use with other
commands
MakePri.exe dump Dumps the contents of a PRI file
MakePri.exe new Creates a new PRI file from scratch
MakePri.exe resourcepack Creates a PRI file that contains additional
resource variants for a base PRI file
MakePri.exe versioned Creates a PRI file based on a previous version
Help:
-----
MakePri.exe help Show this help page
MakePri.exe <command> /? Shows detailed help for <command>
For example,
MakePri.exe createconfig /?
Createconfig command
The createconfig
command creates a new, initialized PRI config file defining the qualifier defaults that you specify. Run MakePri.exe createconfig /?
to see detailed help for this command.
C:\>makepri createconfig /?
Usage:
------
MakePri.exe createconfig /cf <config file destination> /dq
<default qualifiers> [options]
Example:
--------
MakePri.exe createconfig /cf C:\MyApp\priconfig.xml /dq lang-en-US /o /pv 10.0.0
Description:
------------
Creates a PRI configuration file at <config file destination> with default
qualifiers specified by <default qualifiers>. Multiple qualifiers are separated
by underscores (_)
Required Parameters:
--------------------
/ConfigXml(cf) : <FILEPATH> Configuration file output location
/Default(dq) : <QUALIFIERS> The default qualifiers to set in the
configuration file. A language qualifier is required
Options:
--------
/ExtensionDll(ex) : <FILEPATH> Location of the Resource Management System
environment extension DLL. This DLL must be signed by
a Microsoft-issued certificate. Default is an empty path
(no DLL will be used)
/Overwrite(o) : Overwrite an existing output file of the same name
without prompting
/Platform(pv) : <VERSION> Platform version to use for generated
configuration file
FILEPATH - a path to a file, either relative to the current
directory or absolute
QUALIFIERS - a valid qualifier token
(for example, lang-en-US_scale-100_contrast-high)
Help:
-----
/Help(h, ?) : Display the usage help text
Dump command
The dump
command outputs a dumped xml file containing a list of all resources in a specified PRI file. Run MakePri.exe dump /?
to see detailed help for this command.
Note
A schema-free resource pack is one that was created with the omitSchemaFromResourcePacks switch in the PRI config file. To dump a schema-free resource pack, use the switch /es <main_package_PRI_file>
. If you don't specify the main file then you'll see the error message "The resources.pri in the package was corrupted so encryption failed (error PRI222: 0xdef0000f - Unspecified error occurred)".
C:\>makepri dump /?
Usage:
------
MakePri.exe dump [options]
Example:
--------
MakePri.exe dump /if C:\MyApp\resources.pri /of C:\resources.pri.xml
Description:
------------
Outputs a dumped xml file at <output file> containing a list of all
resources in <index file>.
Options:
--------
/DumpType(dt) : <STRING> Format of the dumped file, default is
Basic
/ExtensionDll(ex) : <FILEPATH> Location of the Resource Management System
environment extension DLL. This DLL must be signed by a
Microsoft-issued certificate. Default is an empty path
(no DLL will be used)
/ExternalSchema(es) : <FILEPATH> Location of the external schema file
/IndexFile(if) : <FILEPATH> Location of the PRI file to dump from.
Default is .\resources.pri
/OutputFile(of) : <FILEPATH> Output location of the dump file, default
is .\[indexfile].xml
/OutputOptions(oo) : <OPTIONS> Options to provide detailed control over
contents of XML output files.
/Overwrite(o) : Overwrite an existing output file of the same name
without prompting
/Verbose(v) : Causes verbose messages to be output to the console
Dump Type:
Either 'Basic', 'Detailed', 'Schema', or 'Summary'
FILEPATH - a path to a file, either relative to the current
directory or absolute
Help:
-----
/Help(h, ?) : Display the usage help text
New command
The new
command creates a new PRI file by indexing the files in your project as directed by your configuration file. Run MakePri.exe new /?
to see detailed help for this command.
C:\>makepri new /?
Usage:
------
MakePri.exe new /cf <config file> /pr <project root> [options]
Example:
--------
MakePri.exe new /cf C:\MyApp\priconfig.xml /pr C:\MyApp\src\
/mn C:\MyApp\AppXManifest.xml /o /of C:\MyApp\src\resources.pri
Description:
------------
Creates a PRI file at <output file> by indexing all files in
<project root> and its subdirectories as directed by <config file>. The
index will be assigned <index name> to reference resources in the app
Required Parameters:
--------------------
/ConfigXml(cf) : <FILEPATH> Configuration file location. Use the
'Makepri.exe createconfig' command to generate one
/ProjectRoot(pr) : <FOLDERPATH> Root location of project files
Options:
--------
/AutoMerge(am) : This flag is not recommended for normal use with .appx
packages. It causes Makepri.exe to set the auto
merge flag within the PRI file. Default is not set.
/ExtensionDll(ex) : <FILEPATH> Location of the Resource Management System
environment extension DLL. This DLL must be signed by
a Microsoft-issued certificate. Default is an empty path
(no DLL will be used)
/IndexLog(il) : <FILEPATH> XML Log of indexed resources, no file
generated by default
/IndexName(in) : <STRING> Name for the generated index of resources.
Typically matches the .appx package name, class library
simple name, etc. May be supplied via the
[manifest] parameter.
/IndexOptions(io) : <OPTIONS> Options to provide detailed control over
behavior of resource indexers.
/Manifest(mn) : <FILEPATH> Location of the application or component's
manifest. This parameter is ignored if [indexname]
is given. Default is [projectroot]\AppXManifest.xml
/MappingFile(mf) : <MAPPINGFILETYPE> Generate a mapping file in the given
file format.
/OutputFile(of) : <FILEPATH> Output location of PRI file, default is
.\resources.pri
/Overwrite(o) : Overwrite an existing output file of the same name
without prompting
/ReverseMap(rm) : Generate a reverse mapping section in the PRI file
which can be used for debugging purposes.
/SchemaFile(sf) : <FILEPATH> Output location of XML resource schema
description.
/Verbose(v) : Causes verbose messages to be output to the console
/VersionMajor(vma): <INTEGER> [Deprecated] Major version number for
index, default is 1
FOLDERPATH - a path to a folder
FILEPATH - a path to a file, either relative to the current
directory or absolute
MAPPINGFILETYPE - Supported File type(s): 'AppX'
Help:
-----
/Help(h, ?) : Display the usage help text
ResourcePack command
The resourcepack
command creates a new PRI file by indexing the files in your project as directed by your configuration file. A resource pack PRI file contains only additional variants of resources already specified in an existing PRI file. Run MakePri.exe resourcepack /?
to see detailed help for this command.
C:\>makepri resourcepack /?
Usage:
------
MakePri.exe resourcepack /pr <project root> /cf <config file> [options]
Example:
--------
MakePri.exe resourcepack /cf C:\MyAppEs\priconfig.xml /pr C:\MyAppEs\src\
/if C:\MyApp\1.2\resources.pri /o /of C:\MyAppEs\resources.pri
Description:
------------
Creates a PRI file at <output file> by indexing all files in
<project root> and its subdirectories as directed by <config file>. A
resource pack PRI file contains only additional variants of resources
already specified in <index file>.
Required Parameters:
--------------------
/ConfigXml(cf) : <FILEPATH> Configuration file location. Use
'Makepri.exe createconfig' command to generate one
/ProjectRoot(pr) : <FOLDERPATH> Root location of project files
Options:
--------
/AutoMerge(am) : This flag is not recommended for normal use with .appx
packages. It causes Makepri.exe to set the auto
merge flag within the PRI file. By default it is set
to same as the base PRI file.
/ExtensionDll(ex) : <FILEPATH> Location of the Resource Management System
environment extension DLL. This DLL must be signed by
a Microsoft-issued certificate. Default is an empty path
(no DLL will be used)
/IndexFile(if) : <FILEPATH> Location of the base PRI or XML schema file.
Default is <ProjectRoot>\resources.pri
/IndexLog(il) : <FILEPATH> XML Log of indexed resources, no file
generated by default
/IndexOptions(io) : <OPTIONS> Options to provide detailed control over
behavior of resource indexers.
/MappingFile(mf) : <MAPPINGFILETYPE> Generate a mapping file in the given
file format.
/OutputFile(of) : <FILEPATH> Output location of PRI file, default is
.\resources.pri
/Overwrite(o) : Overwrite an existing output file of the same name
without prompting
/ReverseMap(rm) : Generate a reverse mapping section in the PRI file
which can be used for debugging purposes.
/SchemaFile(sf) : <FILEPATH> Output location of XML resource schema
description.
/Verbose(v) : Causes verbose messages to be output to the console
FOLDERPATH - a path to a folder
FILEPATH - a path to a file, either relative to the current
directory or absolute
MAPPINGFILETYPE - Supported File type(s): 'AppX'
Help:
-----
/Help(h, ?) : Display the usage help text
Versioned command
The versioned
command creates a versioned PRI file by indexing the files in your project as directed by your configuration file. Run MakePri.exe versioned /?
to see detailed help for this command.
C:\>makepri versioned /?
Usage:
------
MakePri.exe versioned /cf <config file> /pr <project root> [options]
Example:
--------
MakePri.exe versioned /cf C:\MyApp\priconfig.xml /pr C:\MyApp\src
/if C:\MyApp\1.2\resources.pri /o /of C:\MyApp\src\resources.pri /o
Description:
------------
Creates a versioned PRI file at <output file> by indexing all files in
<project root> and its subdirectories as directed by <config file>.
Required Parameters:
--------------------
/ConfigXml(cf) : <FILEPATH> Configuration file location. Use
'Makepri.exe createconfig' command to generate one
/ProjectRoot(pr) : <FOLDERPATH> Root location of project files
Options:
--------
/AutoMerge(am) : This flag is not recommended for normal use with .appx
packages. It causes Makepri.exe to set the auto
merge flag within the PRI file. By default it is set
to same as the base PRI file.
/ExtensionDll(ex) : <FILEPATH> Location of the Resource Management System
environment extension DLL. This DLL must be signed by
a Microsoft-issued certificate. Default is an empty path
(no DLL will be used)
/IndexFile(if) : <FILEPATH> Location of the base PRI or XML schema file
to version from. Default is <ProjectRoot>\resources.pri
/IndexLog(il) : <FILEPATH> XML Log of indexed resources, no file
generated by default
/IndexOptions(io) : <OPTIONS> Options to provide detailed control over
behavior of resource indexers.
/MappingFile(mf) : <MAPPINGFILETYPE> Generate a mapping file in the given
file format.
/OutputFile(of) : <FILEPATH> Output location of PRI file, default is
[current directory]\resources.pri
/Overwrite(o) : Overwrite an existing output file of the same name
without prompting
/ReverseMap(rm) : Generate a reverse mapping section in the PRI file
which can be used for debugging purposes.
/SchemaFile(sf) : <FILEPATH> Output location of XML resource schema
description.
/Verbose(v) : Causes verbose messages to be output to the console
FOLDERPATH - a path to a folder
FILEPATH - a path to a file, either relative to the current
directory or absolute
MAPPINGFILETYPE - Supported File type(s): 'AppX'
Help:
-----
/Help(h, ?) : Display the usage help text
/ExtensionDll(ex)
You use the extension DLL option (/ex) with createconfig
, dump
, new
, resourcepack
, and versioned
to specify the location of the Resource Management System environment extension DLL.
Logging/metadata file
MakePri can include info specific to a resource pack in the indexer metadata file. Here is an example of a log file for resources.pri
with resource PRI files german.pri
and highresolution.pri
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<package filename="resources.pri">
<instance itemname="Files\logo.jpg" qualifiers="Scale-100" src="" type="Path">
<value>logo.scale-100.jpg</value>
</instance>
<instance itemname="resources\string2" qualifiers="Language-en-us" src="C:\Users\alias\Desktop\repro\app4\project\en-us\resources.resw" type="String">
<value>value2</value>
</instance>
<instance itemname="resources\string1" qualifiers="Language-en-us" src="C:\Users\alias\Desktop\repro\app4\project\en-us\resources.resw" type="String">
<value>value1</value>
</instance>
</package>
<package filename="german.pri">
<instance itemname="resources\string2" qualifiers="Language-de-de" src="C:\Users\alias\Desktop\repro\app4\project\de-de\resources.resw" type="String">
<value>value2</value>
</instance>
<instance itemname="resources\string1" qualifiers="Language-de-de" src="C:\Users\alias\Desktop\repro\app4\project\de-de\resources.resw" type="String">
<value>value1</value>
</instance>
</package>
<package filename="highresolution.pri">
<instance itemname="Files\logo.jpg" qualifiers="Scale-200" src="" type="Path">
<value>logo.scale-200.jpg</value>
</instance>
</package>
</root>
/IndexFile(if) option
You use the index file option (/if) with dump
, resourcepack
, and versioned
to specify an input PRI file.
For resourcepack
and versioned
, instead of providing a PRI file as the input parameter for /IndexFile(if), you can instead provide a schema file.
/IndexFile(if) <FILEPATH>
FILEPATH is a token that that specifies the location of the input PRI file or PRI schema file.
/IndexOptions(io) option
You use the index options option (/io) with new
, resourcepack
, and versioned
to specify options that provide detailed control over the behavior of resource indexers. Index options are disabled by default.
/IndexOptions(io) <OPTIONS>
OPTIONS is a comma-separated list comprised of the following options.
- +/-HiddenFiles(hf). Index (+) or ignore (-) hidden files and folders.
- +/-LinkedFiles(lf). Index (+) or ignore (-) linked files and folders.
/MappingFile(mf) option
You use the mapping file option (/mf) with new
, resourcepack
, and versioned
to generate a mapping file. MakeAppx.exe uses the mapping file to generate app packages.
/MappingFile(mf) <MAPPINGFILETYPE>
MAPPINGFILETYPE is a token that specifies the format of the mapping file. The only valid supported format is appx
.
/mf appx
This is an example contents of a main mapping file.
"ResourceDimensions" "language-de-de"
And this is an example contents of a resource pack mapping file.
"ResourceId" "Resources184.la5decaf08"
"ResourceDimensions" "language-de-de"
Output summary
If resource packs are created, the output summary from MakePRI.exe is of more verbose form. Here's an example.
Index Pass Completed: ResourcePackTests\TestApp_ResourcePack
Language Qualifiers: fr-FR, de-DE
Finished building
Version: 1.0
Resource Map Name: AppTest
Named Resources: 11
Resource PRI: fr-FR.pri
Version: 1.0
Resource Candidates: 4
Language: fr-FR
Resource PRI: de-DE.pri
Version: 1.0
Resource Candidates: 4
Language: de-DE
Output File(s) at TempTestResults
Successfully Completed
/Overwrite(o) option
If the over-write option (/o) is not provided, and the specified output file(s) already exist(s), then MakePri.exe requires a confirmation before overwriting.
Following file(s) already exist at output location:
<file(s)>
Overwrite these file(s)? [Y]es (any other key to cancel):
/OutputFile(of) option
You use the output file option (/of) with dump
, new
, resourcepack
, and versioned
to specify the output location and name of the PRI file to be generated. If MakePri.exe generates more than one resource PRI file, it places them in the parent folder of the target file. For example, if you specify /of MyParentFolder\TargetFile.pri
then MakePri.exe generates TargetFile.language-en.pri
and TargetFile.scale-100.pri
alongside TargetFile.pri
under ParentFolder
.
Here is an example error condition and the corresponding error message.
Error condition | Error message |
---|---|
The output file name is the same as one of the resource pack names in the configuration. | Invalid Configuration: Resource Pack name <resource pack name> cannot be the same as the output file <outputfilename.pri>. |
/ReverseMap(rm) option
You use the reverse map option (/rm) with new
, resourcepack
, and versioned
to generate a reverse-mapping section in the PRI file, which can be used for debugging.
/SchemaFile(sf) option
You use the schema file option (/sf) with new
, resourcepack
, and versioned
to write a schema file at the specified location.
For resourcepack
and versioned
, instead of providing a PRI file as the input parameter for /IndexFile(if), you can instead provide a schema file.
/SchemaFile(sf) <FILEPATH>
FILEPATH is a token that that specifies where to write the schema file.
This is an example of a schema file.
<PriInfo>
<ResourceMap name="IndexName" resourceVersion="1.0">
<ResourceMapSubtree name="Resources" index="1">
<NamedResource name="String1" index="1"/>
<NamedResource name="String2" index="1"/>
</ResourceMapSubtree>
<ResourceMapSubtree name="Files" index="2">
<NamedResource name="logo.png" index="2"/>
<ResourceMapSubtree name="images" index="3">
<NamedResource name="success.png" index="3"/>
<NamedResource name="error.png" index="3"/>
</ResourceMapSubtree>
</ResourceMapSubtree>
</ResourceMap>
</PriInfo>
/VersionMajor(vma) is deprecated
The major version (/vma) option (for the new
command) is deprecated, and using it results in this warning message.
'VersionMajor (vma)' input parameter has been deprecated. Please specify major version in the configuration file using 'majorVersion' attribute on 'resources' node.
To provide the major version number, use the resources@majorVersion attribute in your configuration file.