共用方式為


Windows 8) 的身分識別 (套件架構

定義封裝的全域唯一識別碼。 封裝身分識別會以封裝的屬性(attribute)的元組表示。

元素階層

<套件>
<身分識別>

語法

<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個字元之間的字串,由英數位元、句號和虛線字元所組成。 Yes
ProcessorArchitecture

描述封裝所包含之程式碼的架構。 包含可執行程式碼的封裝必須包含這個屬性。

這個屬性可以具有下列其中一個值:

  • x86
  • x64
  • arm
  • neutral
No
發行者

描述發行者資訊。 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] * ) ) +) ) = ( ( [^,+ = " <> #;]) + |」。* ") ) ) *"。 此外,語意驗證可確保字串符合 CertNameToStr Windows API 實作為500規則的規範。 Yes
Id

描述封裝中包含的 UI 資源類型。 ResourceId是發行者指定的字串。

長度介於1到30個字元之間的字串,其中包含英數位元、句號和虛線字元。
版本

套件的版本號碼。

四個標記法中的版本字串: Yes

 

子元素

無。

父項目

Parent 項目 描述
套件

定義應用程式封裝資訊清單的根項目。 資訊清單描述系統的軟體結構和功能。

 

備註

重要 針對 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--"
    • 結尾不能是 .。。
      • "."
    • 不能包含 .。。
      • "xn--"

 

名稱屬性是由作業系統和開發人員用來識別套件。 名稱屬性不會顯示給終端使用者。

當應用程式以不同的資源套件為基礎時,[ ResourceId ] 屬性在指定套件名稱的整個使用者帳戶中必須是唯一的。 不允許同時安裝以資源識別碼為基礎的主要套件變異。 不過,允許使用僅限資源套件的多個同時變體。 可能的 ResoureId 屬性範例包括:

  • 北美洲
  • 亞洲
  • 歐洲語言

開啟簽署的封裝時,會針對簽署憑證的主體名稱驗證Publisher屬性。 如果Publisher屬性與主體名稱不完全相符,則封裝無效。 您可以從儲存在憑證中的主體名稱,建立多個語義相等的字串表示。 使用這些正常化規則,將Publisher屬性值與該主體名稱進行比對:

  • Unicode 值可以是 UTF-8 編碼。

  • 如果名稱包含舊版的電子郵件元件,則會以 Unicode 格式表示 (IDN) 的國際化功能變數名稱

  • 具有 X. 500 索引鍵的物件識別碼 (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 = "William" "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