<Элемент зависимостей> (развертывание 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>