<file> 項目 (ClickOnce 應用程式)
識別應用程式所下載和使用的所有非組件檔案。
<file
name
size
group
optional
writeableType
>
<typelib
tlbid
version
helpdir
resourceid
flags
/>
<comClass
clsid
description
threadingModel
tlbid
progid
miscStatus
miscStatusIcon
miscStatusContent
miscStatusDocPrint
miscStatusThumbnail
/>
<comInterfaceExternalProxyStub
iid
baseInterface
numMethods
name
tlbid
proxyStubClass32
/>
<comInterfaceProxyStub
iid
baseInterface
numMethods
name
tlbid
proxyStubClass32
/>
<windowClass
versioned
/>
</file>
項目和屬性
file 項目是選擇性的。 項目具有下列屬性 (Attribute)。
屬性 |
描述 |
---|---|
name |
必要項。 識別檔案的名稱。 |
size |
必要項。 指定檔案的大小 (以位元組為單位)。 |
group |
如果未指定 optional 屬性或將其設定為 false,則為選擇項;如果 optional 為 true,則為必要項。 此檔案所屬群組的名稱。 此名稱可以是開發人員所選擇的任何 Unicode 字串值,而且會在 ApplicationDeployment 類別視需要下載檔案時使用。 |
optional |
選擇項。 指定此檔案是否必須在應用程式首次執行時下載,或是一直駐留在伺服器上直到應用程式視需要而要求檔案。 如果為 false 或未定義,便會在首次執行或安裝應用程式時下載檔案。 如果為 true,group 必須對應用程式資訊清單指定才會有效。 optional 如果以 applicationData 值指定 writeableType,則不能為 true。 |
writeableType |
選擇項。 指定此檔案是資料檔案。 目前唯一的有效值為 applicationData。 |
typelib
typelib 項目是檔案項目的選擇性子項目。 此項目會描述屬於 COM 元件的型別程式庫。 項目具有下列屬性 (Attribute)。
屬性 |
描述 |
---|---|
tlbid |
必要項。 指派給型別程式庫的 GUID。 |
version |
必要項。 型別程式庫的版本號碼。 |
helpdir |
必要項。 包含元件說明檔的目錄, 長度可以是零。 |
resourceid |
選擇項。 地區設定識別項 (LCID) 的十六進位字串表示法, 它是一至四個十六進位數字,不包含 0x 前置字元也不是以零開頭。 LCID 可能具有中性次語言識別項。 |
flags |
選擇項。 這個型別程式庫的型別程式庫旗標的字串表示法, 明確地說,它應該是 "RESTRICTED"、"CONTROL"、"HIDDEN" 或 "HASDISKIMAGE" 的其中一項。 |
comClass
comClass 項目為 file 項目的選擇性子項目,但是當 ClickOnce 應用程式包含要使用免註冊 COM 進行部署的 COM 元件時,就成為必要項。 項目具有下列屬性 (Attribute)。
屬性 |
描述 |
---|---|
clsid |
必要項。 COM 元件的類別 ID,以 GUID 的方式來表示。 |
description |
選擇項。 類別名稱。 |
threadingModel |
選擇項。 同處理序 COM 類別所使用的執行緒模型。 如果這個屬性為 null,就不會使用任何執行緒模型。 元件是在用戶端的主執行緒上建立的,而來自其他執行緒的呼叫會封送處理至這個執行緒。 下列清單會顯示有效值: Apartment、Free、Both 和 Neutral。 |
tlbid |
選擇項。 這個 COM 元件的型別程式庫的 GUID。 |
progid |
選擇項。 COM 元件與版本相關的程式設計識別項, ProgID 的格式是 <vendor>.<component>.<version>。 |
miscStatus |
選擇項。 會在組件資訊清單中複製 MiscStatus 登錄機碼所提供的資訊。 如果找不到 miscStatusIcon、miscStatusContent、miscStatusDocprint 或 miscStatusThumbnail 屬性的值,則會使用 miscStatus 中所列出的對應預設值做為遺失屬性的值。 值可以是逗號分隔、來自下表的屬性值清單。 如果 COM 類別是需要 MiscStatus 登錄機碼值的 OCX 類別,您可以使用這個屬性。 |
miscStatusIcon |
選擇項。 會在組件資訊清單中複製 DVASPECT_ICON 所提供的資訊。 它可以提供物件圖示。 值可以是逗號分隔、來自下表的屬性值清單。 如果 COM 類別是需要 Miscstatus 登錄機碼值的 OCX 類別,您可以使用這個屬性。 |
miscStatusContent |
選擇項。 會在組件資訊清單中複製 DVASPECT_CONTENT 所提供的資訊。 它可以提供可顯示於螢幕或印表機的複合文件。 值可以是逗號分隔、來自下表的屬性值清單。 如果 COM 類別是需要 MiscStatus 登錄機碼值的 OCX 類別,您可以使用這個屬性。 |
miscStatusDocPrint |
選擇項。 會在組件資訊清單中複製 DVASPECT_DOCPRINT 所提供的資訊。 它可以提供可顯示於螢幕的物件表示,就如同列印至印表機。 值可以是逗號分隔、來自下表的屬性值清單。 如果 COM 類別是需要 MiscStatus 登錄機碼值的 OCX 類別,您可以使用這個屬性。 |
miscStatusThumbnail |
選擇項。 會在組件資訊清單中複製 DVASPECT_THUMBNAIL 所提供的資訊。 它可以提供可顯示於瀏覽工具的物件縮圖。 值可以是逗號分隔、來自下表的屬性值清單。 如果 COM 類別是需要 MiscStatus 登錄機碼值的 OCX 類別,您可以使用這個屬性。 |
comInterfaceExternalProxyStub
comInterfaceExternalProxyStub 項目是 file 項目的選擇性子項目,但是當 ClickOnce 應用程式包含要使用免註冊 COM 進行部署的 COM 元件時,就成為必要項。 項目包含下列屬性。
屬性 |
描述 |
---|---|
iid |
必要項。 這個 Proxy 所提供的介面 ID (IID), IID 必須包含在括號內。 |
baseInterface |
選擇項。 iid 所參考介面之衍生介面的 IID。 |
numMethods |
選擇項。 介面所實作之方法的數目。 |
name |
選擇項。 介面會出現在程式碼中的名稱。 |
tlbid |
選擇項。 型別程式庫,其包含了 iid 屬性所指定之介面的描述。 |
proxyStubClass32 |
選擇項。 會將 IID 對應至 32 位元 Proxy DLL 中的 CLSID。 |
comInterfaceProxyStub
comInterfaceProxyStub 項目為 file 項目的選擇性子項目,但是當 ClickOnce 應用程式包含要使用免註冊 COM 進行部署的 COM 元件時,就成為必要項。 項目包含下列屬性。
屬性 |
描述 |
---|---|
iid |
必要項。 這個 Proxy 所提供的介面 ID (IID), IID 必須包含在括號內。 |
baseInterface |
選擇項。 iid 所參考介面之衍生介面的 IID。 |
numMethods |
選擇項。 介面所實作之方法的數目。 |
Name |
選擇項。 介面會出現在程式碼中的名稱。 |
Tlbid |
選擇項。 型別程式庫,其包含了 iid 屬性所指定之介面的描述。 |
proxyStubClass32 |
選擇項。 會將 IID 對應至 32 位元 Proxy DLL 中的 CLSID。 |
threadingModel |
選擇項。 選擇項。 同處理序 COM 類別所使用的執行緒模型。 如果這個屬性為 null,就不會使用任何執行緒模型。 元件是在用戶端的主執行緒上建立的,而來自其他執行緒的呼叫會封送處理至這個執行緒。 下列清單會顯示有效值: Apartment、Free、Both 和 Neutral。 |
windowClass
windowClass 項目為 file 項目的選擇性子項目,但是當 ClickOnce 應用程式包含要使用免註冊 COM 進行部署的 COM 元件時,就成為必要項。 參考 COM 元件所定義之視窗類別的項目必須套用某個版本。 項目包含下列屬性。
屬性 |
描述 |
---|---|
versioned |
選擇項。 控制用於註冊的內部視窗類別名稱是否要包含那個包含了視窗類別之組件的版本。 這個屬性的值可以是 yes 或 no。 預設值為 yes。 只有當相同的視窗類別是由並存元件以及對等的非並存元件所定義,而且您想要將它們視為相同的視窗類別,此時才能使用 no 這個值。 請注意,只有當註冊視窗類別的第一個元件能夠進行註冊,才能套用視窗類別註冊的一般規則,因為視窗類別沒有套用版本。 |
hash
hash 項目是 file 項目的選擇性子項目。 hash 項目沒有任何屬性。
ClickOnce 使用應用程式中所有檔案的演算雜湊做為安全性檢查,以確定沒有檔案在部署後遭到變更。 如果沒有包含 hash 項目,則不會執行這項檢查。因此,建議您不要省略 hash 項目。
如果資訊清單含有未經雜湊處理的檔案,則無法以數位方式簽署該資訊清單,因為使用者無法驗證未雜湊檔案的內容。
dsig:Transforms
dsig:Transforms 項目是 hash 項目的必要子系。 dsig:Transforms 項目沒有任何屬性。
dsig:Transform
dsig:Transform 項目是 dsig:Transforms 項目的必要子系。 dsig:Transform 項目具有下列屬性。
屬性 |
描述 |
---|---|
Algorithm |
用來計算這個檔案的摘要演算法。 目前 ClickOnce 唯一使用的值是 urn:schemas-microsoft-com:HashTransforms.Identity。 |
dsig:DigestMethod
dsig:DigestMethod 項目是 hash 項目的必要子系。 dsig:DigestMethod 項目具有下列屬性。
屬性 |
描述 |
---|---|
Algorithm |
用來計算這個檔案的摘要演算法。 目前 ClickOnce 唯一使用的值是 http://www.w3.org/2000/09/xmldsig#sha1。 |
dsig:DigestValue
dsig:DigestValue 項目是 hash 項目的必要子系。 dsig:DigestValue 項目沒有任何屬性。 它的值是指定檔案之計算的雜湊。
備註
此項目識別構成應用程式的所有非組件檔案,尤其是用於檔案驗證的雜湊值 (Hash Value)。 此項目也可以包括與檔案相關聯的元件物件模型 (Component Object Model,COM) 隔離資料。 如果檔案有所變更,應用程式資訊清單檔也必須更新以反映變更。
範例
在下列程式碼範例中,會說明使用 ClickOnce 部署的應用程式之應用程式資訊清單中的 file 項目。
<file name="Icon.ico" size="9216">
<hash>
<dsig:Transforms>
<dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
</dsig:Transforms>
<dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<dsig:DigestValue>lVoj+Rh6RQ/HPNLOdayQah5McrI=</dsig:DigestValue>
</hash>
</file>