<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
項目是選擇性的。 該項目具有下列屬性。
屬性 | 描述 |
---|---|
name |
必要。 識別檔案的名稱。 |
size |
必要。 以位元組指定檔案的大小。 |
group |
選用,如果未指定 optional 屬性或設定為 false ;如果 optional 為 true 則需要。 檔案所屬群組的名稱。 此名稱可以是開發人員選擇的任何 Unicode 字串值,並用於隨選下載具有 ApplicationDeployment 類別的檔案。 |
optional |
選擇性。 指定當應用程式第一次執行時,這個檔案是否必須下載,或者檔案是否應該只位於伺服器上,直到應用程式視需要要求為止。 如果 false 或未定義,當應用程式第一次執行或安裝時,就會下載檔案。 如果 true ,則必須指定 group ,應用程式資訊清單才能有效。 如果 writeableType 以值 applicationData 指定 ,則 optional 不能為 true。 |
writeableType |
選擇性。 指定這個檔案是資料檔案。 目前唯一有效的值是 applicationData 。 |
typelib
typelib
元素是 file 元素的選用子系。 元素描述屬於 COM 元件的型別程式庫。 該項目具有下列屬性。
屬性 | 描述 |
---|---|
tlbid |
必要。 指派給型別程式庫的 GUID。 |
version |
必要。 型別程式庫的版本號碼。 |
helpdir |
必要。 包含元件說明檔案的目錄。 可能長度為零。 |
resourceid |
選擇性。 地區設定識別碼 (LCID) 的十六進位字串表示。 其為一到四個不含 0x 前置詞且沒有前置零的十六進位數字。 LCID 可能有中性子語言識別碼。 |
flags |
選擇性。 取得這個型別程式庫的型別程式庫旗標字串表示。 具體來說,它應該是「RESTRICTED」、「CONTROL」、「HIDDEN」和「HASDISKIMAGE」的其中之一。 |
comClass
comClass
元素是 file
元素的選用子項,但如果 ClickOnce 應用程式包含想要使用無註冊 COM 部署的 COM 元件,則為必要項目。 該項目具有下列屬性。
屬性 | 描述 |
---|---|
clsid |
必要。 以 GUID 表示之 COM 元件的類別識別碼。 |
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 所提供的介面識別碼 (IID)。 IID 周圍必須有大括弧。 |
baseInterface |
選擇性。 介面的 IID,iid 所參考的介面從中衍生。 |
numMethods |
選擇性。 介面所實作的方法數目。 |
name |
選擇性。 介面的名稱,因為它會出現在程式碼中。 |
tlbid |
選擇性。 包含 iid 屬性所指定介面描述的型別程式庫。 |
proxyStubClass32 |
選擇性。 將 IID 對應至 32 位元 Proxy DLL 中的 CLSID。 |
comInterfaceProxyStub
comInterfaceProxyStub
元素是 file
元素的選用子項,但如果 ClickOnce 應用程式包含想要使用無註冊 COM 部署的 COM 元件,則可能為必要項目。 元素包含以下屬性。
屬性 | 描述 |
---|---|
iid |
必要。 這個 Proxy 所提供的介面識別碼 (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
元素是 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
項目沒有任何屬性。 其文字值是指定檔案的計算雜湊。
備註
此元素會識別組成應用程式的所有非組件檔案,特別是用於檔案驗證的雜湊值。 此元素也可以包含與檔案相關聯的元件物件模式 (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>