Fichier de configuration de MakePri.exe
Cette rubrique décrit le schéma du fichier de configuration XML MakePri.exe ; également appelé fichier de configuration PRI. L’outil MakePri.exe a une commande createconfig que vous pouvez utiliser pour créer un fichier de configuration PRI initialisé.
Notes
MakePri.exe est installé lorsque vous case activée l’option Kit de développement logiciel (SDK) Windows pour les applications gérées UWP lors de l’installation du Kit de développement logiciel Windows. Il est installé sur le chemin d’accès %WindowsSdkDir%bin\<WindowsTargetPlatformVersion>\x64\makepri.exe
(ainsi que dans les dossiers nommés pour les autres architectures). Par exemple : C:\Program Files (x86)\Windows Kits\10\bin\10.0.17713.0\x64\makepri.exe
.
Le fichier de configuration PRI contrôle les ressources qui sont indexées et comment. Le code XML de configuration doit être conforme au schéma suivant.
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="resources">
<xs:complexType>
<xs:sequence>
<xs:element name="packaging" maxOccurs="1" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="autoResourcePackage" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:attribute name="qualifier" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="resourcePackage" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="qualifierSet" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:attribute name="definition" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element maxOccurs="unbounded" name="index">
<xs:complexType>
<xs:sequence>
<xs:element name="qualifiers" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="qualifier">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="default" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="unbounded" name="qualifier">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
<xs:attribute name="value" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="indexer-config" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip"/>
</xs:sequence>
<xs:attribute name="type" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="root" type="xs:string" use="required" />
<xs:attribute name="startIndexAt" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="isDeploymentMergeable" type="xs:boolean" use="optional" />
<xs:attribute name="majorVersion" type="xs:positiveInteger" use="optional" />
<xs:attribute name="targetOsVersion" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>
- L’élément
default
spécifie le contexte (langage, échelle, contraste, etc.) qui doit être utilisé pour résoudre les ressources lorsque le contexte d’exécution ne correspond à aucune ressource candidate. Étant donné que ce contexte est spécifié au moment de la génération et ne change pas, les ressources sont résolues dans ce contexte à mesure que des qualificateurs sont créés. Le score correspondant est stocké au moment de la génération. Une valeur doit être spécifiée pour chaque qualificateur. Pour plus d’informations sur la façon dont les ressources sont choisies, consultez ResourceContext . - L’élément
index
définit des passes d’indexation discrètes effectuées sur les ressources. Chaque passe d’indexation détermine les indexeurs spécifiques au format à utiliser et les ressources à indexer. - L’élément
qualifiers
définit les qualificateurs initiaux pour le premier fichier ou dossier dont d’autres ressources héritent. Chaque élément qualificateur doit avoir un nom et une valeur valides (voir Personnaliser vos ressources pour la langue, l’échelle, le contraste élevé et d’autres qualificateurs). - L’attribut
root
est la racine du chemin d’accès du fichier physique pour la passe d’index. Il peut être relatif ou absolu. Si elle est relative, elle est ajoutée à la racine du projet que vous fournissez dans la ligne de commande. S’il est absolu, il est directement utilisé comme racine de passage d’index. Les barres obliques vers l’arrière ou vers l’avant sont acceptables. Les barres obliques de fin sont coupées. La racine de la passe d’index détermine le dossier dans lequel toutes les ressources sont considérées comme relatives. - L’attribut
startIndexAt
est le fichier initial ou le dossier initial utilisé dans l’indexation. Il est relatif à la racine de la passe d’index. Une valeur vide suppose que l’index passe le dossier racine.
Fichier de configuration PRI par défaut
MakePri.exe génère ce nouveau fichier de configuration PRI initialisé lors de l’émission de la commande createconfig .
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<resources targetOsVersion="10.0.0" majorVersion="1">
<packaging>
<autoResourcePackage qualifier="Language"/>
<autoResourcePackage qualifier="Scale"/>
<autoResourcePackage qualifier="DXFeatureLevel"/>
</packaging>
<index root="\" startIndexAt="\">
<default>
<qualifier name="Language" value="en-US"/>
<qualifier name="Contrast" value="standard"/>
<qualifier name="Scale" value="100"/>
<qualifier name="HomeRegion" value="001"/>
<qualifier name="TargetSize" value="256"/>
<qualifier name="LayoutDirection" value="LTR"/>
<qualifier name="Theme" value="dark"/>
<qualifier name="AlternateForm" value=""/>
<qualifier name="DXFeatureLevel" value="DX9"/>
<qualifier name="Configuration" value=""/>
<qualifier name="DeviceFamily" value="Universal"/>
<qualifier name="Custom" value=""/>
</default>
<indexer-config type="folder" foldernameAsQualifier="true" filenameAsQualifier="true" qualifierDelimiter="."/>
<indexer-config type="resw" convertDotsToSlashes="true" initialPath=""/>
<indexer-config type="resjson" initialPath=""/>
<indexer-config type="PRI"/>
</index>
<!--<index startIndexAt="Start Index Here" root="Root Here">-->
<!-- <indexer-config type="resfiles" qualifierDelimiter="."/>-->
<!-- <indexer-config type="priinfo" emitStrings="true" emitPaths="true" emitEmbeddedData="true"/>-->
<!--</index>-->
</resources>
Élément Packaging
L’élément packaging
définit les informations de fractionnement PRI. Le schéma de l’élément est défini pour la packaging
configuration automatique (prise en charge d’une autoResourcePackage
dimension spécifique) et manuelle.
Cet exemple montre comment utiliser autoResourcePackage
le long d’une dimension spécifique.
<packaging>
<autoResourcePackage qualifier="Language"/>
<autoResourcePackage qualifier="Scale"/>
<autoResourcePackage qualifier="DXFeatureLevel"/>
</packaging>
Cet exemple montre comment utiliser manuellement resourcePackage
.
<packaging>
<resourcePackage name="Germany">
<qualifierSet definition="lang-de-de"/>
<qualifierSet definition="lang-es-es"/>
</resourcePackage>
<resourcePackage name="France">
<qualifierSet definition="lang-fr-fr"/>
</resourcePackage>
<resourcePackage name="HighRes1">
<qualifierSet definition="scale-200"/>
</resourcePackage>
<resourcePackage name="HighRes2">
<qualifierSet definition="scale-400"/>
</resourcePackage>
</packaging>
MakePri.exe ne bloque pas explicitement la génération de fichiers PRI de ressources le long d’une dimension spécifique. Les restrictions sur un certain ensemble de dimensions sont définies et implémentées en externe par MakeAppx.exe ou d’autres outils dans le pipeline.
MakePri.exe analyse l’élément packaging
après tous les index
nœuds pour remplir tous les qualificateurs par défaut. MakePri.exe collecte des informations analysées dans ces structures de données.
enum ResourcePackageMode
{
None,
AutoPackQualifier,
ManualPack
}
ResourcePackageMode eResourcePackageMode;
list<string> RPQualifierList; // To store AutoResourcePackage Qualifiers
map<string, list<string>> RPNameToQSIMap; // To store ResourcePackage name to QualifierSet list mapping.
attribut resources@isDeploymentMergeable
Cet attribut définit un indicateur dans le fichier PRI qui provoque
- Fusion de déploiement pour identifier que ce fichier PRI peut fusionner.
- GetFullyQualifiedReference pour retourner une erreur au cas où cet indicateur est défini et que le gestionnaire de ressources a été initialisé avec un fichier.
La valeur par défaut de cet attribut est true
. MakePri.exe définit l’indicateur dans PRI uniquement si vous ciblez Windows 10.
Nous vous recommandons d’omettre isDeploymentMergeable
(ou de le définir explicitement sur true
) pour la création de packs de ressources si vous ciblez Windows 10.
MakePri.exe ajoute la valeur de au fichier de isDeploymentMergeable
vidage si makepri dump
est exécuté avec l’option /dt detailed
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PriInfo>
<PriHeader>
...
<IsDeploymentMergeable>true</IsDeploymentMergeable>
...
</PriHeader>
...
</PriInfo>
attribut resources@majorVersion
La valeur par défaut de cet attribut est 1. Si vous fournissez une valeur explicite et que vous utilisez également l’option de ligne de commande déconseillée /VersionMajor(vma)
pour l’outil MakePri.exe, la valeur dans le fichier de configuration est prioritaire.
Voici un exemple.
<resources majorVersion="2">
<packaging ... />
<index root="\" startIndexAt="\">
...
</index>
</resources>
attribut resources@targetOsVersion
Indique la version du système d’exploitation cible. Le tableau ci-dessous montre les valeurs prises en charge ; la valeur par défaut est 6.3.0.
Valeur | Signification |
---|---|
10.0.0 | Windows 10 |
6.3.0 (par défaut) | Windows 8.1 |
6.2.1 | Windows 8 |
Voici un exemple.
<resources targetOsVersion="10.0.0">
<packaging ... />
<index root="\" startIndexAt="\">
...
</index>
</resources>
Note Windows est à compatibilité descendante par rapport aux fichiers PRI ; mais pas toujours compatible avec l’avant.
MakePri.exe ajoute la valeur de au fichier de targetOsVersion
vidage si makepri dump
est exécuté avec l’option /dt detailed
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<PriInfo>
<PriHeader>
...
<TargetOS version="10.0.0"/>
...
</PriHeader>
...
</PriInfo>
Messages d’erreur de validation
Voici quelques exemples de conditions d’erreur et le message d’erreur correspondant.
Condition | severity | Message |
---|---|---|
Une valeur targetOsVersion autre que l’une des valeurs prises en charge est spécifiée. | Erreur | Configuration non valide : targetOsVersion spécifié non valide. |
Une targetOsVersion de « 6.2.1 » est spécifiée et un packaging élément est présent. |
Erreur | Configuration non valide : le nœud « Empaquetage » n’est pas pris en charge avec cette targetOsVersion. |
Plusieurs modes trouvés dans la configuration. Par exemple, Manual et AutoResourcePackage spécifiés. | Erreur | Configuration non valide : le nœud « empaquetage » ne peut pas avoir plusieurs modes de fonctionnement. |
Un qualificateur par défaut est répertorié sous package de ressources. | Erreur | Configuration non valide : <Qualifiername>=<QualifierValue> est un qualificateur par défaut et ses candidats ne peuvent pas être ajoutés à un package de ressources. |
Le qualificateur AutoResourcePackage contient plusieurs qualificateurs. Par exemple, language_scale. | Erreur | Configuration non valide : AutoResourcePackage avec plusieurs qualificateurs n’est pas pris en charge. |
ResourcePackage QualifierSet contient plusieurs qualificateurs. Par exemple, language-en-us_scale-100 | Erreur | Configuration non valide : QualifierSet avec plusieurs qualificateurs n’est pas pris en charge. |
Nom du fichier resourcepack en double trouvé. | Erreur | Configuration non valide : nom rpname du <pack de ressources en double>. |
Même jeu de qualificateurs défini dans deux packages de ressources. | Erreur | Configuration non valide : plusieurs instances de «< balises> qualificateur » de QualifierSet ont trouvées. |
Aucun candidat n’est trouvé pour le QualifierSet répertorié pour le nœud « ResourcePackage ». | Avertissement | Configuration non valide : aucun candidat n’a été trouvé pour <le nom> du package de ressources. |
Aucun candidat n’a trouvé pour qualificateur répertorié sous le nœud « AutoResourcePackage ». | Avertissement | Configuration non valide : aucun candidat n’a été trouvé pour le nom> du qualificateur<. Package de ressources non généré. |
Aucun des modes n’est trouvé. Autrement dit, nœud « empaquetage » vide trouvé. | Avertissement | Configuration non valide : aucun mode d’empaquetage spécifié. |
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour