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 | 描述封裝所包含之程式碼的架構。 包含可執行程式碼的封裝必須包含這個屬性。 |
這個屬性可以具有下列其中一個值:
|
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 項目 | 描述 |
---|---|
套件 | 定義應用程式封裝資訊清單的根項目。 資訊清單描述系統的軟體結構和功能。 |
備註
重要 針對 Name 和 ResourceID 字串,必須遵循下列規則:
- 允許的輸入字元 = 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 |