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

标识应用程序所需的平台或程序集依赖项。

语法


      <dependency>
   <dependentOS
      supportURL
      description
   >
      <osVersionInfo>
         <os
            majorVersion
            minorVersion
            buildNumber
            servicePackMajor
            servicePackMinor
            productType
            suiteType
         />
      </osVersionInfo>
   </dependentOS>
   <dependentAssembly
      dependencyType
      allowDelayedBinding
      group
      codeBase
      size
   >
      <assemblyIdentity
         name
         version
         processorArchitecture
         language
      >
         <hash>
            <dsig:Transforms>
               <dsig:Transform
                  Algorithm
            />
            </dsig:Transforms>
            <dsig:DigestMethod />
            <dsig:DigestValue>
            </dsig:DigestValue>
    </hash>

      </assemblyIdentity>
   </dependentAssembly>
</dependency>

元素和属性

dependency 元素是必需的。 同一应用程序清单中可能有多个 dependency 实例。

dependency 元素没有属性,并且包含以下子元素。

dependentOS

可选。 包含 osVersionInfo 元素。 dependentOSdependentAssembly 元素互相排斥:对于 dependency 元素,必须有一个存在,但两者不能同时存在。

dependentOS 支持以下属性。

属性 说明
supportUrl 可选。 为依赖平台指定一个支持 URL。 如果找到所需平台,则向用户显示此 URL。
description 可选。 以用户可读的形式描述 dependentOS 元素描述的操作系统。

osVersionInfo

必需。 此元素是 dependentOS 元素的子元素,并且包含 os 元素。 此元素没有属性。

os

必需。 此元素是 osVersionInfo 元素的子元素。 此元素具有以下属性。

属性 说明
majorVersion 必需。 指定操作系统的主要版本号。
minorVersion 必需。 指定操作系统的次要版本号。
buildNumber 必需。 指定操作系统的内部版本号。
servicePackMajor 必需。 指定操作系统的服务包主编号。
servicePackMinor 可选。 指定操作系统的服务包次要编号。
productType 可选。 标识产品类型值。 有效值为 serverworkstationdomainController。 例如,对于 Windows 10,此属性值为 workstation
suiteType 可选。 标识系统上可用的产品套件或系统的配置类型。 有效值为 backofficebladedatacenterenterprisehomeprofessionalsmallbusinesssmallbusinessRestrictedterminal。 例如,对于 Windows 2000 Professional,此属性值为 professional

dependentAssembly

可选。 包含 assemblyIdentity 元素。 dependentOSdependentAssembly 元素互相排斥:对于 dependency 元素,必须有一个存在,但两者不能同时存在。

dependentAssembly 具有以下属性。

属性 说明
dependencyType 必需。 指定依赖项类型。 有效值为 prerequisiteinstallinstall 程序集是作为 ClickOnce 应用程序的一部分安装的。 prerequisite 程序集必须存在于全局程序集缓存 (GAC) 中,然后才能安装 ClickOnce 应用程序。
allowDelayedBinding 必需。 指定是否可以在运行时以编程方式加载程序集。
group 可选。 如果 dependencyType 属性设置为 install,则指定一组仅按需安装的命名程序集。 有关详细信息,请参见演练:在设计器中使用 ClickOnce 部署 API 按需下载程序集

如果设置为 framework,并且 dependencyType 属性设置为 prerequisite,则将程序集指定为 .NET Framework 的一部分。 在 .NET Framework 4 及更高版本上安装时,不会为此程序集检查全局程序集缓存(GAC)。
codeBase dependencyType 属性设置为 install 时,这为必需项。 依赖程序集的路径。 可以是绝对路径,也可以是相对于清单代码库的路径。 此路径必须是有效的 URI,程序集清单才会有效。
size dependencyType 属性设置为 install 时,这为必需项。 依赖程序集的大小(以字节为单位)。

assemblyIdentity

必需。 此元素是 dependentAssembly 元素的子元素,并且包含下列元素。

属性 说明
name 必需。 标识应用程序的名称。
version 必需。 按以下格式指定应用程序的版本号:major.minor.build.revision
publicKeyToken 可选。 指定一个 16 个字符的十六进制字符串,该字符串表示应用程序或程序集签名时所用公钥的 SHA-1 哈希值的最后 8 个字节。 用于对目录签名的公钥必须是 2048 位或更多。
processorArchitecture 可选。 指定处理器。 适用于 32 位 Windows 的有效值为 x86,适用于 64 位 Windows 的有效值为 I64
language 可选。 标识程序集由两部分组成的语言代码,例如 EN-US。

hash

hash 元素是 assemblyIdentity 元素的可选子元素。 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 元素没有属性。 它的文本值为计算指定文件所得到的哈希。

备注

应用程序使用的所有程序集都必须具有相应的 dependency 元素。 依赖程序集不包括那些必须在全局程序集缓存中预安装为平台程序集的程序集。

示例

下面的代码示例演示了 ClickOnce 应用程序清单中的 dependency 元素。 此代码示例摘自为 ClickOnce 应用程序清单主题提供的一个更大的示例。

<dependency>
  <dependentOS>
    <osVersionInfo>
      <os
        majorVersion="4"
        minorVersion="10"
        buildNumber="0"
        servicePackMajor="0" />
    </osVersionInfo>
  </dependentOS>
</dependency>
<dependency>
  <dependentAssembly
    dependencyType="preRequisite"
    allowDelayedBinding="true">
    <assemblyIdentity
      name="Microsoft.Windows.CommonLanguageRuntime"
      version="4.0.20506.0" />
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly
    dependencyType="install"
    allowDelayedBinding="true"
    codebase="MyApplication.exe"
    size="4096">
    <assemblyIdentity
      name="MyApplication"
      version="1.0.0.0"
      language="neutral"
      processorArchitecture="x86" />
    <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>DpTW7RzS9IeT/RBSLj54vfTEzNg=</dsig:DigestValue>
    </hash>
  </dependentAssembly>
</dependency>

另请参阅