Identity (schéma de package pour Windows 8)

Définit un identificateur global unique pour un package. Une identité de package est représentée sous la forme d’un tuple d’attributs du package.

Hiérarchie d’éléments

<Packages>
<Identité>

Syntaxe

<Identity Name                   = A string between 3 and 50 characters in length that consists of alpha-numeric, period, and dash characters.
          ProcessorArchitecture? = "x86" | "x64" | "arm" | "neutral"
          Publisher              = A string between 1 and 8192 characters in length that fits the regular expression  of a distinguished name : "(CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")(, ((CN|L|O|OU|E|C|S|STREET|T|G|I|SN|DC|SERIALNUMBER|(OID\.(0|[1-9][0-9]*)(\.(0|[1-9][0-9]*))+))=(([^,+="<>#;])+|".*")))*". Further, semantic validation ensures that the string is compliant with CertNameToStr Windows API implementation of X.500 rules.

          Version                = A version string in quad notation, "Major.Minor.Build.Revision".
          ResourceId?            = A string between 1 and 30 characters in length that consists of alpha-numeric, period, and dash characters. />

Clé

? facultatif (zéro ou un)

Attributs et éléments

Attributs

Attribut Description Type de données Obligatoire
Nom

Décrit le contenu du package. L’attribut Name ne respecte pas la casse.

Utilisez l’attribut DisplayName pour afficher un nom de package pour les utilisateurs.

Chaîne comprenant entre 3 et 50 caractères qui se composent de caractères alphanumériques, de points et de tirets. Oui
ProcessorArchitecture

Décrit l’architecture du code contenu dans le package. Un package qui inclut du code exécutable doit inclure cet attribut.

Cet attribut peut avoir l’une des valeurs suivantes :

  • x86
  • x64
  • arm
  • neutre
No
Publisher

Décrit les informations sur le serveur de publication. l’attribut Publisher doit correspondre aux informations d’objet du serveur de publication du certificat utilisé pour signer un package. Pour plus d’informations, consultez empaquetage d’applications

Chaîne d’une longueur de 1 à 8192 caractères qui correspond à l’expression régulière d’un nom unique : "(CN | L | O | UO | E | C | S | RUE | T | G | Je | SN | DC | SERIALNUMBER | OID. (0 | [1-9] [0-9] *) (\. ( 0 | [1-9] [0-9] *)) +)) = (([^, + = " <> #;]) +|". * ") (, ((CN | L | O | UO | E | C | S | RUE | T | G | Je | SN | DC | SERIALNUMBER | OID. (0 | [1-9] [0-9] *) (\. ( 0 | [1-9] [0-9] *)) +)) = (([^, + = " <> #;]) +|". *")))*". en outre, la validation sémantique garantit que la chaîne est conforme à CertNameToStr Windows l’implémentation de l’API des règles X. 500. Oui
ResourceId

Décrit le type de ressources d’interface utilisateur contenues dans le package. ResourceId est une chaîne spécifiée par un serveur de publication.

Chaîne de longueur comprise entre 1 et 30 caractères qui se compose de caractères alphanumériques, de points et de tirets. Non
Version

Numéro de version du package.

Chaîne de version en notation Quad, "major. minor. Build. Revision". Oui

 

Éléments enfants

Aucun.

Éléments parents

Élément parent Description
Package

Définit l’élément racine d’un manifeste de package d’application. Le manifeste décrit la structure et les fonctionnalités du logiciel sur le système.

 

Notes

Important Pour les chaînes Name et ResourceId , les règles suivantes doivent être respectées :

  • Caractères d’entrée autorisés = sous-ensemble ASCII
    • Lettres majuscules (U + 0041 à U + 005A)
    • Lettres minuscules (U + 0061 jusqu’à U + 007A)
    • Nombres (U + 0030 à U + 0039)
    • Point (U + 002E)
    • Tiret (U + 002D)
  • Chaînes interdites
    • Ne peut pas être égal à...
      • ".", "..", "con", "PRN", "aux", "nul», « COM1 », « COM2 », « COM3 », « COM4 », « com5 », « com6 », « com7 », « COM8 », « COM9 », « LPT1 », « LPT2 », « LPT3 », « lpt4 », « lpt5 », « lpt6 », « lpt7 », « lpt8 », « LPT9 »
    • Impossible de commencer par...
      • « con. », « PRN. », « aux. », « nul. », « COM1. », « COM2. », « COM3. », « COM4 »., « COM5. », « com6. », « com7. », « COM8. », « COM9. », « LPT1. », « LPT2. », « LPT3. », « LPT4. », « lpt5. », « lpt6 », « lpt7. », « LPT8. », « LPT9. », « xn-- »
    • Impossible de terminer par...
      • "."
    • Ne peut pas contenir...
      • ". xn--"

 

L’attribut Name est utilisé par le système d’exploitation et les développeurs pour identifier les packages. L’attribut Name n’est pas destiné à être affiché aux utilisateurs finaux.

Quand une application est basée sur des packages de ressources différents, l’attribut ResourceId doit être unique dans le compte d’utilisateur pour un nom de package donné. Les variantes de package principales basées sur des ID de ressource ne peuvent pas être installées simultanément. Toutefois, plusieurs variantes simultanées d’un package de ressources uniquement sont autorisées. Voici quelques exemples d’attributs ResoureId possibles :

  • Amérique du Nord
  • Asia
  • Langues européennes

l’attribut Publisher est validé par rapport au nom du sujet du certificat de signature lors de l’ouverture des packages signés. si l’attribut Publisher ne correspond pas exactement au nom de l’objet, le package n’est pas valide. Vous pouvez construire plusieurs représentations sous forme de chaîne sémantiquement équivalentes à partir du nom d’objet stocké dans le certificat. utilisez ces règles de canonisation pour faire correspondre la valeur de l’attribut Publisher au nom de l’objet :

  • Les valeurs Unicode peuvent être encodées en UTF-8.

  • Si le nom contient le composant de messagerie hérité, le nom de domaine international (IDN) est représenté au format Unicode.

  • Les identificateurs d’objet (OID) avec des noms de clés X. 500 doivent utiliser le nom de clé X. 500 (par exemple, CN, et non 2.5.4.3).

  • Les OID sans nom de clé X. 500 sont identifiés par le préfixe « OID. » (par exemple, OID. 2.5.4.34).

  • Les noms de clé OID sont séparés de leurs valeurs par un signe égal sans espace supplémentaire (par exemple, CN = JohnSmith).

  • Plusieurs entrées de nom unique relatif (RDN) sont séparées par une virgule suivie d’un espace (par exemple, CN = JohnSmith, O = contoso).

  • La valeur RDN contient des guillemets uniquement si elle contient des espaces blancs de début ou de fin, ou l’un des caractères suivants (par exemple, CN = "JohnSmith", O = "C++ Inc.") :

    • Virgule (,)
    • Signe plus (+)
    • Le signe égal (=)
    • Marque de pouce (")
    • Barre oblique inverse suivie de la lettre n (\n)
    • Signe inférieur à ( < )
    • Signe supérieur à ( > )
    • Signe dièse (#)
    • Point-virgule (;)
  • Le caractère de citation est une marque de pouce ("). Si la valeur RDN contient une marque de pouce, la marque de pouce doit avoir des guillemets doubles ("") en plus d’être placée entre guillemets (par exemple, CN = "William" "Bill" "Smith").

  • Le RDN à valeurs multiples n’est pas autorisé (par exemple, CN = JohnSmith + O = contoso).

ces règles suivent le comportement de la fonction CertNameToStr , qui peut être utilisée pour déterminer la valeur d’attribut Publisher attendue à partir d’un certificat.

Exemples

L’exemple suivant est extrait du manifeste de package de l’un des exemples du kit de développement logiciel (SDK).

<Identity Name="Microsoft.SDKSamples.ApplicationDataSample" 
          Version="1.0.0.0" 
          Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />

Spécifications

Valeur
Espace de noms http://schemas.microsoft.com/appx/2010/manifest