Windows 8 的 (包架构的标识)

定义包的全局唯一标识符。 包标识表示为包的特性元组。

元素层次结构

<包>
<标识>

语法

<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. />

? 可选 (零个或一个)

特性和元素

特性

属性 说明 数据类型 必须
名称

描述包的内容。 Name属性不区分大小写。

使用 DisplayName 属性向用户显示包名称。

长度介于3到50个字符之间的字符串,由字母数字、句点和短划线组成。
ProcessorArchitecture

描述包中包含的代码的体系结构。 包含可执行代码的包必须包含此属性。

此属性可以具有以下值之一:

  • x86
  • X64
  • arm
  • 中立
Publisher

介绍发布服务器信息。 Publisher属性必须与用于对包进行签名的证书的发行者主题信息相匹配。 有关详细信息,请参阅 打包应用

长度介于1到8192个字符之间的字符串,其长度与可分辨名称的正则表达式相匹配: " (CN |L | O |OU |E |C | S |街道 |T |G |I | SN |DC | SERIALNUMBER | (OID\. (0 |[1-9][0-9] * ) ( (0 |[1-9][0-9] * ) ) +) ) = ( ( [^,+ = " <> #;]) + | "。* ") (, ( (CN |L | O |OU |E |C | S |街道 |T |G |I | SN |DC | SERIALNUMBER | (OID\. (0 |[1-9][0-9] * ) ( (0 |[1-9][0-9] * ) ) +) ) = ( ( [^,+ = " <> #;]) + | "。* ") ) ) *"。 此外,语义验证可确保字符串符合 Windows CertNameToStr 的 API 实现。
ResourceId

描述包中包含的 UI 资源的类型。 ResourceId是一个发布者指定的字符串。

长度介于1到30个字符之间的字符串,由字母数字、句点和短划线组成。
版本

包的版本号。

采用四表示法 "主版本. 内部版本. 修订版本" 的版本字符串。

 

子元素

无。

父元素

父元素 说明

定义应用程序包清单的根元素。 清单描述软件到系统的结构和功能。

 

备注

重要提示 对于 NameResourceID 字符串,必须遵循以下规则:

  • 允许的输入字符 = ASCII 子集
    • 大写字母 (U + 0041 到 U + 005A)
    • 小写字母 (U + 0061 到 U + 007A)
    • 数字 (U + 0030 到 U + 0039)
    • 点 (U + 002E)
    • 短划线 (U + 002D)
  • 禁止的字符串
    • 不能等于 .。。
      • "."、"..."、"con"、"prn"、"aux"、"nul"、"com1"、"com2"、"com3"、"com4"、"com5"、"com6"、"com7"、"com8"、"com9"、"lpt1"、"lpt2"、"lpt3"、"lpt4"、"lpt5"、"lpt6"、"lpt7"、"lpt8"、"lpt9"
    • 不能以 .。。
      • "con"、"prn"、"aux"、"nul."、"com1."、"com2."、"com3"、"com4"。,"com5"、"com6"、"com7"、"com8"、"com9"、"lpt1."、"lpt2."、"lpt3."、"lpt4"、"lpt5"、"lpt6"、"lpt7"、"lpt8"、"lpt9"、""、""、""、""、""
    • 不能以 .。。
      • "."
    • 不能包含 .。。
      • "xn--"

 

操作系统和开发人员使用 Name 属性来识别包。 不应向最终用户显示 名称 属性。

当应用基于不同的资源包时, ResourceId 属性在给定包名称的用户帐户中必须是唯一的。 不允许同时安装基于资源 Id 的主包变体。 但是,允许使用仅限资源的包的多个同时变体。 可能的 ResoureId 属性的示例包括:

  • 北美
  • 亚洲
  • 欧洲语言

打开已签名的包时,将根据签名证书的使用者名称验证Publisher特性。 如果Publisher属性与使用者名称不完全匹配,则包无效。 可以从证书中存储的使用者名称构造多个语义上等效的字符串表示形式。 使用以下规范化规则将Publisher特性值与该使用者名称相匹配:

  • Unicode 值可以是 UTF-8 编码。

  • 如果名称包含旧电子邮件组件,则以 Unicode 形式表示 (IDN) 的国际化域名

  • (Oid) 的对象标识符必须使用 x. 500 密钥名称 (例如,CN,not 2.5.4.3) 。

  • 不带 X. 500 密钥名称的 Oid 用 "OID." 前缀 (例如 2.5.4.34) 。

  • OID 键名称与它们的值之间用等号隔开, (例如 CN = JohnSmith) 。

  • 多个相对可分辨名称 (RDN) 条目之间用逗号分隔,后面跟一个空格 (例如,CN = JohnSmith,O = Contoso) 。

  • 仅当 RDN 值包含前导或尾随空格或以下字符之一时,才会在其两侧加上引号 (例如 CN = "JohnSmith"、O = "c + + Inc."。) :

    • 逗号 (,)
    • 加号 (+)
    • 等号 (=)
    • 英寸标记 ( ")
    • 反斜杠后跟字母 n (\n)
    • 小于符号 (<)
    • 大于符号 (>)
    • 数字符号 (#)
    • 分号 (;)
  • 引号字符是" (英寸) 。 如果 RDN 值包含一英寸标记,则除了括在引号中外,英寸标记还必须有双引号 ("") (,例如,CN="用户""Bill"Smith") 。

  • 不允许使用多值 RDN (例如 CN=JohnSmith + O=Contoso) 。

这些规则遵循 CertNameToStr 函数的行为,该函数可用于从证书Publisher属性值。

示例

以下示例取自其中一个 SDK 示例的包清单。

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

要求

Namespace http://schemas.microsoft.com/appx/2010/manifest