<dependency> 元素(ClickOnce部署)
标识要安装的应用程序版本和应用程序清单的位置。
语法
<dependency>
<dependentAssembly
preRequisite
visible
dependencyType
codeBase
size
>
<assemblyIdentity
name
version
publicKeyToken
processorArchitecture
language
type
/>
<hash>
<dsig:Transforms>
<dsig:Transform
Algorithm
/>
</dsig:Transforms>
<dsig:DigestMethod />
<dsig:DigestValue>
</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
元素和属性
dependency
元素是必需的。 没有属性。 一个部署清单可以有多个 dependency
元素。
dependency
元素通常表示 ClickOnce 应用程序中包含的程序集上主应用程序的依赖项。 如果 Main.exe 应用程序使用名为 DotNetAssembly.dll 的程序集,则必须在依赖项部分中列出该程序集。 不过,依赖项还可表示其他类型的依赖项,例如公共语言运行时的特定版本、全局程序集缓存中的程序集 (GAC) 或 COM 对象上的依赖项。 由于它是一种无接触部署技术,因此 ClickOnce 无法发起这些类型的依赖项的下载和安装,但如果一个或多个指定的依赖项不存在,则它会阻止应用程序运行。
dependentAssembly
必需。 此元素包含 assemblyIdentity
元素。 下表显示了 dependentAssembly
支持的特性。
属性 | 说明 |
---|---|
preRequisite |
可选。 指定 GAC 中应该已存在此程序集。 有效值为 true 和 false 。 如果 GAC 中不存在 true 和指定的程序集,则该应用程序无法运行。 |
visible |
可选。 标识顶级应用程序标识,包括其依赖项。 供 ClickOnce 内部使用,用于管理应用程序存储和激活。 |
dependencyType |
必需。 此依赖项与应用程序之间的关系。 有效值是: - install 。 组件表示与当前应用程序不同的安装。- preRequisite 。 当前应用程序需要组件。 |
codebase |
可选。 应用程序清单的完整路径。 |
size |
可选。 应用程序清单的大小(以字节为单位)。 |
assemblyIdentity
必需。 此元素是 dependentAssembly
元素的子元素。 assemblyIdentity
的内容必须与 ClickOnce 应用程序清单中所述的内容相同。 下表显示了 assemblyIdentity
元素的特性。
属性 | 说明 |
---|---|
Name |
必需。 标识应用程序的名称。 |
Version |
必需。 指定应用程序的版本号,格式如下:major.minor.build.revision |
publicKeyToken |
必需。 指定 16 个字符的十六进制字符串,该字符串表示应用程序或程序集签名时所用公钥的 SHA-1 哈希的最后 8 个字节。 用于签名的公钥必须为 2048 位或更大。 |
processorArchitecture |
必需。 指定微处理器。 适用于 32 位 Windows 的有效值为 x86 ,适用于 64 位 Windows 的有效值为 IA64 。 |
Language |
可选。 标识程序集由两部分组成的语言代码。 例如,EN-US 表示英语(美国)。 默认为 neutral 。 此元素位于 asmv2 命名空间中。 |
type |
可选。 与 Windows 并行安装技术向后兼容。 唯一允许的值为 win32 。 |
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
元素没有属性。 它的文本值为计算指定文件所得到的哈希。
备注
部署清单通常具有单个 assemblyIdentity
元素,用于标识应用程序清单的名称和版本。
示例 1
下面的代码示例演示了 ClickOnce 部署清单中的 dependency
元素。
<!-- Identify the assembly dependencies -->
<dependency>
<dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="MyApplication.exe" size="16384">
<assemblyIdentity name="MyApplication" version="0.0.0.0" cultural="neutral" processorArchitecture="msil" />
<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>YzXYZJAvj9pgAG3y8jXUjC7AtHg=</dsig:DigestValue>
</hash>
</dependentAssembly>
</dependency>
示例 2
下面的代码示例指定对已在 GAC 中安装的程序集的依赖项。
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
</dependentAssembly>
</dependency>
示例 3
下面的代码示例指定对特定版本的公共语言运行时的依赖项。
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
</dependentAssembly>
</dependency>
示例 4
下面的代码示例指定操作系统依赖项。
<dependency>
<dependentOS supportUrl="http://www.microsoft.com" description="Microsoft Windows Operating System">
<osVersionInfo>
<os majorVersion="4" minorVersion="10" />
</osVersionInfo>
</dependentOS>
</dependency>