<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 的程序集,则该程序集必须在依赖项节中列出。但是,dependency 也可以表示其他类型的依赖项,如特定版本的公共语言运行时的依赖项、全局程序集缓存 (GAC) 中的程序集的依赖项或 COM 对象的依赖项。由于它是一项无人参与的部署技术,因此 ClickOnce 无法启动下载和安装这些类型的依赖项,但是,如果一个或多个指定的依赖项不存在,则它会阻止应用程序运行。

dependentAssembly

必选。此元素包含 assemblyIdentity 元素。下表显示了 dependentAssembly 支持的特性。

特性

说明

preRequisite

可选。指定此程序集应当预先存在于 GAC 中。有效值是 true 和 false。如果为 true,并且指定的程序集不存在于 GAC 中,则应用程序将无法运行。

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 元素,该元素标识应用程序清单的名称和版本。

示例

下面的代码示例演示 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>

下面的代码示例指定了 GAC 中已安装的程序集的依赖项。

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
  </dependentAssembly>
</dependency>

下面的代码示例指定了特定版本的公共语言运行时的依赖项。

<dependency>
  <dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
    <assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="2.0.50215.0" />
  </dependentAssembly>
</dependency>

下面的代码示例指定了操作系统依赖项。

<dependency>
   <dependentOS supportUrl="https://www.microsoft.com" description="Microsoft Windows Operating System">
      <osVersionInfo>
         <os majorVersion="4" minorVersion="10" />
      </osVersionInfo>
   </dependentOS>
</dependency>

请参见

参考

ClickOnce 部署清单

<dependency> 元素(ClickOnce 应用程序)