Элемент <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, то эта сборка должна быть указана в разделе зависимостей.Однако зависимость может также выражать другие типы зависимостей, например зависимости от определенной версии среды CLR, от сборки в глобальном кэше сборок (GAC) или от объекта COM.Поскольку эта технология развертывания "без вмешательства", ClickOnce не может инициировать загрузку и установку этих типов зависимостей, но предотвращает запуск приложения в случае, когда одна или несколько указанных зависимостей не существуют.
dependentAssembly
Обязательный.Этот элемент содержит элемент assemblyIdentity.В следующей таблице перечислены атрибуты, поддерживаемые элементом dependentAssembly.
Атрибут |
Описание |
---|---|
preRequisite |
Необязательный.Указание того, что данная сборка уже должна присутствовать в GAC.Допустимые значения: true и false.Если присвоено значение true и указанная сбор отсутствует в GAC, запуск приложения невозможен. |
visible |
Необязательный.Определение удостоверения приложения верхнего уровня, включая его зависимости.Предназначен для внутреннего использования в ClickOnce для управления хранением и активацией приложений. |
dependencyType |
Обязательный.Связь между зависимостью и приложением.Допустимые значения:
|
codebase |
Необязательный.Полный путь к манифесту приложения. |
size |
Необязательный.Размер манифеста приложения в байтах. |
assemblyIdentity
Обязательный.Этот элемент является дочерним для элемента dependentAssembly.Содержимое assemblyIdentity должно совпадать с описанием в манифесте приложения ClickOnce.В следующей таблице перечислены атрибуты элемента assemblyIdentity.
Атрибут |
Описание |
---|---|
Name |
Обязательный.Идентифицирует имя приложения. |
Version |
Обязательный.Указание номера версии приложения в следующем формате: старший разряд.младший разряд.построение.редакция |
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.
Атрибут |
Описание |
---|---|
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, идентифицирующий имя и версию манифеста приложения.
Пример
В следующем примере кода показан элемент 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>
В следующем примере кода указывается зависимость от сборки, уже установленной в GAC.
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="GACAssembly" version="1.0.0.0" language="neutral" processorArchitecture="msil" />
</dependentAssembly>
</dependency>
В следующем примере кода указывается зависимость от определенной версии среды CLR.
<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>