Поделиться через


<Элемент зависимостей> (развертывание 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, то эта сборка должна быть указана в разделе зависимостей. Однако зависимость может также выразить другие типы зависимостей, например зависимости определенной версии среды CLR, сборки в глобальном кэше сборок (GAC) или com-объекте. Так как это технология без сенсорного развертывания, ClickOnce не может инициировать загрузку и установку этих типов зависимостей, но не позволяет приложению работать, если одна или несколько указанных зависимостей не существуют.

зависимыйAssembly

Обязательно. Этот элемент содержит assemblyIdentity элемент. В следующей таблице показаны атрибуты поддерживаемых dependentAssembly .

Атрибут Description
preRequisite Необязательно. Указывает, что эта сборка уже должна существовать в GAC. Допустимые значения — true и false. Если trueв GAC указанная сборка не существует, приложение не выполняется.
visible Необязательно. Определяет удостоверение приложения верхнего уровня, включая его зависимости. Используется внутри ClickOnce для управления хранилищем приложений и активацией.
dependencyType Обязательно. Связь между этой зависимостью и приложением. Допустимые значения:

- install. Компонент представляет отдельную установку от текущего приложения.
- preRequisite. Компонент требуется текущим приложением.
codebase Необязательно. Полный путь к манифесту приложения.
size Необязательно. Размер манифеста приложения в байтах.

assemblyIdentity

Обязательно. Этот элемент является дочерним по отношению к элементу dependentAssembly . Содержимое assemblyIdentity должно быть таким же, как описано в манифесте приложения ClickOnce. В следующей assemblyIdentity таблице показаны атрибуты элемента.

Атрибут Description
Name Обязательное. Определяет имя приложения.
Version Обязательно. Указывает номер версии приложения в следующем формате: major.minor.build.revision
publicKeyToken Обязательно. Задает шестнадцатеричную строку с 16 символами, представляющую последние 8 байт хэша SHA-1 открытого ключа, под которым подписывается приложение или сборка. Открытый ключ, используемый для подписи, должен иметь значение 2048 бит или больше.
processorArchitecture Обязательно. Задает микропроцессор. Допустимые значения предназначены x86 для 32-разрядных Windows и IA64 для 64-разрядных Windows.
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 таблице показаны атрибуты элемента.

Атрибут Description
Algorithm Алгоритм, используемый для вычисления дайджеста для этого файла. В настоящее время единственным значением, используемым ClickOnce, является urn:schemas-microsoft-com:HashTransforms.Identity.

dsig:DigestMethod

Элемент dsig:DigestMethod является обязательным дочерним элементом hash элемента. В следующей dsig:DigestMethod таблице показаны атрибуты элемента.

Атрибут Description
Algorithm Алгоритм, используемый для вычисления дайджеста для этого файла. В настоящее время единственным значением, используемым ClickOnce, является http://www.w3.org/2000/09/xmldsig#sha1.

dsig:DigestValue

Элемент dsig:DigestValue является обязательным дочерним элементом hash элемента. У элемента dsig:DigestValue нет атрибутов. Его текстовое значение — вычисляемый хэш для указанного файла.

Замечания

Манифесты развертывания обычно имеют один assemblyIdentity элемент, определяющий имя и версию манифеста приложения.

Пример 1

В следующем примере кода показан dependency элемент в манифесте развертывания ClickOnce.

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

В следующем примере кода указывается зависимость от определенной версии среды CLR.

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

См. также