<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

必选。 COM 组件的表示为 GUID 的类 ID。

description

可选。 类名。

threadingModel

可选。 进程内 COM 类所使用的线程处理模型。 如果此属性为空,则不使用线程处理模型。 该组件在客户端的主线程上创建,来自其他线程的调用被封送处理到此线程。 下面的列表显示有效的值:

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

必选。 由此代理提供的接口 ID (IID)。 该 IID 周围必须有大括号。

baseInterface

可选。 派生 iid 引用的接口的接口的 IID。

numMethods

可选。 该接口实现的方法的数量。

name

可选。 该接口将出现在代码中的名称。

tlbid

可选。 包含 iid 特性指定的接口的描述的类型库。

proxyStubClass32

可选。 将 IID 映射到 32 位代理 DLL 中的 CLSID。

comInterfaceProxyStub

comInterfaceProxyStub 元素是 file 元素的可选子元素,但是如果 ClickOnce 应用程序包含打算使用免注册的 COM 进行部署的 COM 组件,则该元素可能是必需的。 该元素包含下列特性。

特性

说明

iid

必选。 由此代理提供的接口 ID (IID)。 该 IID 周围必须有大括号。

baseInterface

可选。 派生 iid 引用的接口的接口的 IID。

numMethods

可选。 该接口实现的方法的数量。

Name

可选。 该接口将出现在代码中的名称。

Tlbid

可选。 包含 iid 特性指定的接口的描述的类型库。

proxyStubClass32

可选。 将 IID 映射到 32 位代理 DLL 中的 CLSID。

threadingModel

可选。 可选。 进程内 COM 类所使用的线程处理模型。 如果此属性为空,则不使用线程处理模型。 该组件在客户端的主线程上创建,来自其他线程的调用被封送处理到此线程。 下面的列表显示有效的值:

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 元素没有任何特性。 它的文本值是为指定文件计算所得的哈希值。

备注

此元素标识组成应用程序的所有非程序集文件,特别要指出的是,此元素还包含用于文件验证的哈希值。 另外,此元素还可能包括与文件关联的组件对象模型 (COM) 隔离数据。 如果文件发生了更改,还必须对应用程序清单文件进行更新以反映此更改。

示例

下面的代码示例阐释某应用程序的应用程序清单中的 file 元素,该应用程序是使用 ClickOnce 部署的。

  <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>

请参见

参考

ClickOnce 应用程序清单