提交大量中繼資料套件
若要提交大量中繼資料套件:
使用 SignTool 工具簽署大量中繼資料套件。
使用 Microsoft 帳戶,從硬體開發人員中心或 Windows 開發人員中心登入 儀表板 。
在 [裝置中繼資料] 底下,按一下 [建立大量提交]。
流覽並選取新的大量中繼資料套件,然後按一下 [ 提交]。
建立大量提交套件
大量中繼資料提交套件是可將多個裝置中繼資料套件提交至儀表板的套件格式。
大量中繼資料提交套件應該使用大量提交功能上傳至儀表板。 這項功能會移除使用者介面,以建立體驗,以簡化同時上傳多個中繼資料套件。 建立體驗和修改套件屬性的資訊包含在 BulkMetadataSubmission XML 檔中。
大量套件最多可以包含 50 個 devicemetadata-ms 或 devicemanifest-ms 檔案。
如需使用裝置中繼資料提交精靈建立大量中繼資料套件的相關資訊,請參閱 在 Visual Studio 中建立裝置中繼資料提交套件。
大量中繼資料提交套件內容
每個大量中繼資料提交套件都包含下列元件:
裝置中繼資料套件 ()
裝置中繼資料套件包含顯示裝置圖示的資訊和圖形、設定動作,以及利用裝置體驗功能。
裝置資訊清單套件 ()
裝置資訊清單套件包含用來驗證裝置中繼資料套件的資訊。
BulkMetadataSubmission XML 檔
本檔包含用來在沒有使用者介面的情況下正確提交套件的資料。 儀表板會使用此檔中的資訊來建立具有易記名稱的體驗、將套件組織成體驗、更新體驗,以及將個別套件標示為預覽。
注意
XML 檔必須使用 UTF-8 編碼來儲存。
您必須在大量中繼資料提交套件中包含至少一個裝置中繼資料或裝置資訊清單套件。
大量中繼資料提交套件的結構
大量中繼資料提交套件的元件會儲存在壓縮封包檔案中。 檔案名的尾碼必須是 「.bulkmetadata-ms」。
每個大量中繼資料提交套件都必須具有下列結構:
DDMMYYYY.bulkmetadata-ms
\Filename1.devicemetadata-ms
\Filename2.devicemetadata-ms
\...
\Filename3.devicemanifest-ms
\Filename4.devicemanifest-ms
\...
\BulkMetadataSubmission.xml
Filename1、Filename2、Filename3、Filename4 等必須是 GUID。
若要建立BulkMetadataSubmission.xml,請參閱下方 的建立BulkMetadataSubmission.xml 。
若要開發裝置中繼資料套件 *.devicemetadata-ms,請參閱Windows 8 的裝置中繼資料套件架構參考。
若要開發裝置資訊清單套件 *.devicemanifest-ms,請參閱 提交電腦裝置資訊清單套件。
您可以使用 Cabarc 工具來建立這些 CAB 套件。 若要深入瞭解此工具,請參閱 Cabarc 概觀。
當您使用 Cabarc 工具建立 *.bulkmetadata-ms 檔案時,您必須建立本機目錄,其中裝置中繼資料套件 (*.devicemetadata-ms) 、裝置資訊清單套件 (*.devicemanifest-ms) ,而 BulkMetadataSubmission XML 檔位於目錄的根目錄。
備註
.devicemetadata-ms 和 .devicemanifest-ms 檔案名必須指定 GUID,而不指定大括弧 ({}) 分隔符號。
每個裝置中繼資料套件和裝置資訊清單套件的 GUID 必須是唯一的。 當您建立新的或修訂的套件時,必須建立新的 GUID。
如需如何建立封包檔案的詳細資訊,請參閱 Microsoft Cabinet SDK。
範例
以下是如何使用 Cabarc 工具來建立 .bulkmetadata-ms 檔案的範例。 在此範例中,大量中繼資料檔案的元件位於名為 BulkPackages 的本機目錄中:
.\BulkPackages\
.\BulkPackages\BulkMetadataSubmission.xml
.\BulkPackages\GUID1.devicemetadata-ms
.\BulkPackages\GUID2.devicemetadata-ms
.\BulkPackages\GUID3.devicemanifest-ms
.\BulkPackages\GUID4.devicemanifest-ms
GUID.pcmetadata-ms 檔案是在名為 PCFiles 的本機目錄中建立:
Cabarc.exe -r -p -P .\BulkPackages\
N .\BulkFiles\ DDMMYYYY.bulkmetadata-ms
.\BulkPackages\BulkMetadataSubmission.xml
.\BulkPackages\GUID1.devicemetadata-ms
.\BulkPackages\GUID2.devicemetadata-ms
.\BulkPackages\GUID3.devicemanifest-ms
.\BulkPackages\GUID4.devicemanifest-ms
注意
您可以在 Cabarc 概觀中找到此工具的詳細資訊。
建立BulkMetadataSubmission.xml
BulkMetadataSubmission XML 架構
大量中繼資料提交套件包含一份BulkMetadataSubmission.xml檔,其中包含儀表板用來建立易記名稱的體驗、將套件組織成體驗、更新體驗,以及將個別套件標示為預覽的資訊。
BulkMetadataSubmission.xml檔中的資料會根據 BulkMetadataSubmission XML 架構來格式化,如下所述。
注意
XML 檔必須使用 UTF-8 編碼來儲存。
BulkMetadataSubmission XML 架構名稱Space
以下是 PcMetadataSubmission XML 架構的命名空間: http://schemas.microsoft.com/Windows/2010/08/MetadataSubmission/BulkMetadataSubmission
BulkMetadataSubmission XML 元素/屬性的概觀
下表描述 BulkMetadataSubmission XML 架構的中繼資料元素和屬性。
元素/屬性 | 元素/屬性類型 | 必要/選擇性 |
---|---|---|
體驗 | ExperienceType | 必要 |
ExperienceName | xs:string | 必要 |
ExperienceId | tns:GUIDType | 選擇性 |
PackageList | tns:PackageListType | 必要 |
PackageFileName | PackageFileNameType | 必要 |
preview | xs:Boolean | 必要 |
locale | xs:string | 必要 |
Qualification | tns:QualificationType | 必要 |
LogoSubmissionIDList | tns:LogoSubmissionIDListType | 選擇性 |
LogoSubmissionID | xs:integer | 必要 |
update | xs:Boolean | 必要 |
BulkMetadataSubmission XML 架構中繼資料
以下是 BulkMetadataSubmission XML 架構中繼資料:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://schemas.microsoft.com/Windows/2010/08/MetadataSubmission/BulkMetadataSubmission" xmlns:tns="http://schemas.microsoft.com/Windows/2010/08/MetadataSubmission/BulkMetadataSubmission" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" blockDefault="#all">
<xs:element name="BulkMetadataSubmission" type="tns:BulkMetadataSubmissionType" />
<xs:complexType name="BulkMetadataSubmissionType">
<xs:sequence>
<xs:element name="Experience" type="tns:ExperienceType" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="ExperienceType">
<xs:complexContent>
<xs:extension base ="tns:BaseExperienceType">
<xs:attribute name="update" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BaseExperienceType">
<xs:sequence>
<xs:element name="ExperienceName" type="xs:string" />
<xs:element name="ExperienceId" type="tns:GUIDType" minOccurs="0" />
<xs:element name="PackageList" type="tns:PackageListType" />
<xs:element name="Qualification" type="tns:QualificationType" />
<xs:element name="LogoSubmissionIDList" type="tns:LogoSubmissionIDListType" minOccurs="0" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:simpleType name="GUIDType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="PackageListType">
<xs:sequence>
<xs:element name="PackageFileName" type="tns:PackageFileNameType" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="PackageFileNameType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="preview" type="xs:boolean" use="required" />
<xs:attribute name="locale" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="QualificationType">
<xs:union memberTypes="tns:QualificationTypeEnumeration xs:string" />
</xs:simpleType>
<xs:simpleType name="QualificationTypeEnumeration">
<xs:restriction base="xs:string">
<xs:enumeration value="Logo/IDDA" />
<xs:enumeration value="MicrosoftInboxDriver" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="LogoSubmissionIDListType">
<xs:sequence>
<xs:element name="LogoSubmissionID" type="xs:integer" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:schema>
BulkMetadataSubmission XML 架構參考
BulkMetadataSubmission XML 架構會定義下列元素和屬性:
BulkMetadataSubmission
體驗
ExperienceName
ExperienceID
PackageList
PackageFileName
preview
地區設定
Qualification
LogoSubmissionIDList
- LogoSubmissionID
update
Experience 元素
Experience 元素會指定單一體驗的資訊。 如需體驗的詳細資訊,請參閱Windows 8 的裝置中繼資料套件架構參考。
根據這項資訊,儀表板會建立具有正確資訊的體驗,並將套件提交至此體驗,或使用新的套件更新現有的體驗。
<xs:element name="Experience" type="tns:ExperienceType" maxOccurs="unbounded" />
<xs:complexType name="ExperienceType">
<xs:complexContent>
<xs:extension base ="tns:BaseExperienceType">
<xs:attribute name="update" type="xs:boolean" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="BaseExperienceType">
<xs:sequence>
<xs:element name="ExperienceName" type="xs:string" />
<xs:element name="ExperienceId" type="tns:GUIDType" minOccurs="0" />
<xs:element name="PackageList" type="tns:PackageListType" />
<xs:element name="Qualification" type="tns:QualificationType" />
<xs:element name="LogoSubmissionIDList" type="tns:LogoSubmissionIDListType" minOccurs="0" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
您可以使用多個 Experience 元素來指定多個體驗。 這可讓您針對不同的裝置,單一提交許多套件。
例如,請參閱下列內容。
<Experience update="false">
<ExperienceName>Test1</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview ="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemanifest-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
<Experience update="false">
<ExperienceName>Test2</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview ="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemetadata-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
ExperienceName 元素
ExperienceName 元素會指定體驗的名稱。 如果這是新的體驗,儀表板將會使用此名稱來建立體驗。 或者,當此值是現有體驗的更新時,它會忽略此值。
<xs:element name="ExperienceName" type="xs:string" />
ExperienceId 元素
ExperienceId 元素會指定體驗識別碼的 GUID。 更新現有體驗時,需要此值。 儀表板會使用此值來識別要更新的體驗。
<xs:element name="ExperienceId" type="tns:GUIDType" minOccurs="0" />
<xs:simpleType name="GUIDType">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
</xs:restriction>
</xs:simpleType>
PackageList 元素
PackageList 元素會指定要包含在體驗中的裝置中繼資料或裝置資訊清單套件清單。 儀表板會使用這項資訊,將套件新增至新的或現有的體驗。
<xs:element name="PackageList" type="tns:PackageListType" />
<xs:complexType name="PackageListType">
<xs:sequence>
<xs:element name="PackageFileName" type="tns:PackageFileNameType" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
PackageFileName 元素
PackageFileName 元素會指定單一裝置中繼資料或裝置資訊清單套件的檔案名和資訊。 儀表板會使用這項資訊將套件新增至新的或現有的體驗,並在指出時正確地將套件標示為預覽。 根據預覽和地區設定值,儀表板也會視需要刪除現有的套件
<xs:element name="PackageFileName" type="tns:PackageFileNameType" maxOccurs="unbounded" />
<xs:complexType name="PackageFileNameType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="preview" type="xs:boolean" use="required" />
<xs:attribute name="locale" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
PackageFileName 元素的預覽和地區設定屬性可讓儀表板使用新提交的套件來更新現有的即時套件。
例如,如果體驗中已有 en-US 預覽套件存在,而且在大量中繼資料提交套件中提交相同的體驗,則會自動刪除現有的套件,並提交新的套件。
基於這個理由,更新套件時也請務必小心,以避免意外刪除。
預覽屬性
預覽屬性會指定裝置中繼資料或裝置資訊清單套件是否應該標示為預覽。 如需儀表板如何使用此值的詳細資訊,請參閱 PackageFileName 元素。
<xs:attribute name="preview" type="xs:boolean" use="required" />
locale 屬性
locale 屬性會指定從裝置中繼資料或裝置資訊清單套件PackageInfo.xml) 宣告的地區設定 (應標示為預覽。 如需儀表板如何使用此值的詳細資訊,請參閱 PackageFileName 元素。
<xs:attribute name="locale" type="xs:string" use="required" />
Qualification 元素
[資格] 元素會指定裝置是否有標誌認證、包含在 [收件匣驅動程式散發合約] (IDDA) 清單中,或使用 Microsoft 收件匣驅動程式。 儀表板會使用這項資訊,以確保您所提交的裝置元資料類型正確裝置認證。
<xs:element name="Qualification" type="tns:QualificationType" />
<xs:simpleType name="QualificationType">
<xs:union memberTypes="tns:QualificationTypeEnumeration xs:string" />
</xs:simpleType>
<xs:simpleType name="QualificationTypeEnumeration">
<xs:restriction base="xs:string">
<xs:enumeration value="Logo/IDDA" />
<xs:enumeration value="MicrosoftInboxDriver" />
</xs:restriction>
</xs:simpleType>
裝置階段之類的功能不適用於未通過標誌認證的裝置,而且不在 IDDA 清單中。
您可以為每個體驗選取兩個選項之一。 下表會指出這些選項及其定義:
列舉值 | 描述 |
---|---|
標誌/IDDA | 您的裝置具有標誌認證,或位於 IDDA 清單上。 如果您有標誌認證,則必須在 LogoSubmissionIDList 元素中指定特定的標誌提交識別碼。 |
MicrosoftInboxDrive | 您的裝置使用 Microsoft 收件匣驅動程式。 使用此限定等級 (例如裝置階段) 時,可能無法使用裝置中繼資料的某些功能 |
LogoSubmissionIDList 元素
LogoSubmissionIDList 元素會指定裝置 () 標誌認證清單。 如需儀表板如何使用此值的詳細資訊,請參閱限定性元素。
<xs:element name="LogoSubmissionIDList" type="tns:LogoSubmissionIDListType" minOccurs="0" maxOccurs="unbounded" />
<xs:complexType name="LogoSubmissionIDListType">
<xs:sequence>
<xs:element name="LogoSubmissionID" type="xs:integer" maxOccurs="unbounded" />
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
LogoSubmissionID 元素
LogoSubmissionID 元素會指定裝置的個別標誌認證。 如需儀表板如何使用此值的詳細資訊,請參閱限定性元素。
<xs:element name="LogoSubmissionID" type="xs:integer" maxOccurs="unbounded" />
多個 LogoSubmissionID 元素可用來指出單一裝置的多個標誌認證。 使用者應該在清單中列出其裝置的所有標誌認證。 以下是列出多個標誌認證的範例:
<LogoSubmissionIDList>
<LogoSubmissionID>0000001</LogoSubmissionID>
<LogoSubmissionID>0000002</LogoSubmissionID>
<LogoSubmissionID>0000003</LogoSubmissionID>
</LogoSubmissionIDList>
update 屬性
更新屬性會指定是否正在更新體驗。 當 update 屬性設定為 true 時,儀表板會使用此值來更新體驗,方法是刪除衝突的套件並上傳新的套件。 當 update 屬性設定為 false 時,儀表板會建立新的體驗,並將新的套件上傳至其中。
<xs:attribute name="update" type="xs:boolean" use="required"/>
BulkMetadataSubmission XML 範例
下列 XML 檔會使用 BulkMetadataSubmission XML 架構來指定 BulkMetadataSubmission XML 檔的元件。
<BulkMetadataSubmission xmlns="http://schemas.microsoft.com/Windows/2010/08/MetadataSubmission/BulkMetadataSubmission">
<Experience update="false">
<ExperienceName>Test1</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview ="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemanifest-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
<Experience update="false">
<ExperienceName>Test2</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview ="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemetadata-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
<Experience update="false">
<ExperienceName>Test3</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemanifest-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
<Experience update="false">
<ExperienceName>Test4</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemetadata-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
<Experience update="false">
<ExperienceName>Test5</ExperienceName>
<PackageList>
<PackageFileName locale="en-us" preview="false">
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.devicemetadata-ms
</PackageFileName>
</PackageList>
<Qualification>Logo/IDDA</Qualification>
<LogoSubmissionIDList>
<LogoSubmissionID>XXXXXXX</LogoSubmissionID>
</LogoSubmissionIDList>
</Experience>
</BulkMetadataSubmission>