<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;如果 optionaltrue 則需要。 檔案所屬群組的名稱。 此名稱可以是開發人員選擇的任何 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,則不會使用任何執行緒模式。 元件會在用戶端的主執行緒上建立,而來自其他執行緒的呼叫會封送處理至此執行緒。 下列清單顯示有效的值:

ApartmentFreeBothNeutral
tlbid 選擇性。 此 COM 元件的型別程式庫 GUID。
progid 選擇性。 與 COM 元件相關聯的版本相依程式設計識別碼。 ProgID 的格式為 <vendor>.<component>.<version>
miscStatus 選擇性。 組件中的重複項目指出 MiscStatus 登錄機碼所提供的資訊。 如果找不到 miscStatusIconmiscStatusContentmiscStatusDocprintmiscStatusThumbnail 屬性的值,則會針對遺漏的屬性使用 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,則不會使用任何執行緒模式。 元件會在用戶端的主執行緒上建立,而來自其他執行緒的呼叫會封送處理至此執行緒。 下列清單顯示有效的值:

ApartmentFreeBothNeutral

windowClass

windowClass 元素是 file 元素的選用子項,但如果 ClickOnce 應用程式包含想要使用無註冊 COM 部署的 COM 元件,則可能為必要項目。 元素是指 COM 元件所定義的視窗類別,該元件必須套用版本。 元素包含以下屬性。

屬性 描述
versioned 選擇性。 控制註冊時使用的內部視窗類別名稱是否包含含有視窗類別的組件版本。 這個屬性的值可以是 yesno。 預設值為 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>

另請參閱