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