<Элемент InstallChecks> (начальная загрузка)

Элемент InstallChecks поддерживает запуск различных тестов на локальном компьютере, чтобы убедиться, что установлены все необходимые условия для приложения.

Синтаксис

<InstallChecks>
    <AssemblyCheck
        Property
        Name
        PublicKeyToken
        Version
        Language
        ProcessorArchitecture
    />
    <RegistryCheck
        Property
        Key
        Value
    />
    <ExternalCheck
        PackageFile
        Property
        Arguments
    />
    <FileCheck
        Property
        FileName
        SearchPath
        SpecialFolder
        SearchDepth
    />
    <MsiProductCheck
        Property
        Product
        Feature
    />
    <RegistryFileCheck
        Property
        Key
        Value
        FileName
        SearchDepth
    />
</InstallChecks>

AssemblyCheck

Этот элемент является необязательным дочерним элементом InstallChecks. Для каждого экземпляра AssemblyCheckначального загрузчика убедитесь, что сборка, определяемая элементом, существует в глобальном кэше сборок (GAC). Он не содержит элементов и имеет следующие атрибуты.

Атрибут Description
Property Обязательное. Имя свойства для хранения результата. Это свойство можно ссылаться на тест InstallConditions под элементом, который является дочерним элементом Command элемента. Дополнительные сведения см. в разделе <"Элементы Commands>".
Name Обязательно. Полное имя сборки для проверка.
PublicKeyToken Обязательно. Сокращенная форма открытого ключа, связанного с этой строго именованной сборкой. Все сборки, хранящиеся в GAC, должны иметь имя, версию и открытый ключ.
Version Обязательно. Версия сборки.

Номер версии имеет основную версию> формата.< <дополнительная версия>.<версия сборки>.<версия редакции>.
Language Необязательно. Язык локализованной сборки. По умолчанию — neutral.
ProcessorArchitecture Необязательно. Процессор компьютера, предназначенный для этой установки. По умолчанию — msil.

ExternalCheck

Этот элемент является необязательным дочерним элементом InstallChecks. Для каждого экземпляра ExternalCheckзагрузчик выполнит именованную внешнюю программу в отдельном процессе и сохранит свой код выхода в свойстве, указанному в Propertyфайле. ExternalCheckполезно для реализации сложных проверка зависимостей или, когда единственным способом проверка для существования компонента является создание экземпляра.

ExternalCheck не содержит элементов и имеет следующие атрибуты.

Атрибут Description
Property Обязательное. Имя свойства для хранения результата. Это свойство можно ссылаться на тест InstallConditions под элементом, который является дочерним элементом Command элемента. Дополнительные сведения см. в разделе <"Элементы Commands>".
PackageFile Обязательно. Внешняя программа для выполнения. Программа должна быть частью пакета распространения установки.
Arguments Необязательно. Предоставляет аргументы командной строки исполняемому файлу с PackageFileименем.

FileCheck

Этот элемент является необязательным дочерним элементом InstallChecks. Для каждого экземпляра FileCheckзагрузчик определяет, существует ли именованный файл, и возвращает номер версии файла. Если файл не имеет номера версии, загрузчик задает свойство с Property именем 0. Если файл не существует, Property значение не задано.

FileCheck не содержит элементов и имеет следующие атрибуты.

Атрибут Description
Property Обязательное. Имя свойства для хранения результата. Это свойство можно ссылаться на тест InstallConditions под элементом, который является дочерним элементом Command элемента. Дополнительные сведения см. в разделе <"Элементы Commands>".
FileName Обязательно. Имя файла для поиска.
SearchPath Обязательно. Диск или папка, в которой нужно найти файл. Это должен быть относительный путь, если SpecialFolder он назначен; в противном случае он должен быть абсолютным путем.
SpecialFolder Необязательно. Папка с особым значением для Windows или ClickOnce. Значение по умолчанию — интерпретировать SearchPath как абсолютный путь. Допустимые значения.

AppDataFolder. Папка данных приложения для этого приложения ClickOnce; зависит от текущего пользователя.

CommonAppDataFolder. Папка данных приложения, используемая всеми пользователями.

CommonFilesFolder. Папка Common Files для текущего пользователя.

LocalDataAppFolder. Папка данных для не перемещаемых приложений.

ProgramFilesFolder. Стандартная папка Program Files для 32-разрядных приложений.

StartUpFolder. Папка, содержащая все приложения, запущенные при запуске системы.

SystemFolder. Папка, содержащая 32-разрядные библиотеки DLL системы.

WindowsFolder. Папка, содержащая установку системы Windows.

WindowsVolume. Диск или раздел, содержащий установку системы Windows.
SearchDepth Необязательно. Глубина поиска вложенных папок для именованного файла. Поиск является глубинным. Значение по умолчанию — 0, которое ограничивает поиск папкой верхнего уровня, указанной SpecialFolder и SearchPath.

MsiProductCheck

Этот элемент является необязательным дочерним элементом InstallChecks. Для каждого экземпляра MsiProductCheckзагрузчик проверка, чтобы узнать, запущена ли указанная установка установщика Microsoft Windows до завершения. Значение свойства задается в зависимости от состояния установленного продукта. Положительное значение указывает, что продукт установлен, 0 или -1 указывает, что он не установлен. (Дополнительные сведения см. в функции ПАКЕТА SDK установщика Windows MsiQueryFeatureState.) . Если установщик Windows не установлен на компьютере, Property не установлен.

MsiProductCheck не содержит элементов и имеет следующие атрибуты.

Атрибут Description
Property Обязательное. Имя свойства для хранения результата. Это свойство можно ссылаться на тест InstallConditions под элементом, который является дочерним элементом Command элемента. Дополнительные сведения см. в разделе <"Элементы Commands>".
Product Обязательно. GUID для установленного продукта.
Feature Необязательно. GUID для определенной функции установленного приложения.

RegistryCheck

Этот элемент является необязательным дочерним элементом InstallChecks. Для каждого экземпляра RegistryCheckзагрузчик проверка, чтобы узнать, существует ли указанный раздел реестра или имеет ли оно указанное значение.

RegistryCheck не содержит элементов и имеет следующие атрибуты.

Атрибут Description
Property Обязательное. Имя свойства для хранения результата. Это свойство можно ссылаться на тест InstallConditions под элементом, который является дочерним элементом Command элемента. Дополнительные сведения см. в разделе <"Элементы Commands>".
Key Обязательно. Имя раздела реестра.
Value Необязательно. Имя извлекаемого значения реестра. Значение по умолчанию — возвращать текст значения по умолчанию. Value должен быть строкой или DWORD.

RegistryFileCheck

Этот элемент является необязательным дочерним элементом InstallChecks. Для каждого экземпляра RegistryFileCheckзагрузчик получает версию указанного файла, сначала пытаясь получить путь к файлу из указанного раздела реестра. Это особенно полезно, если вы хотите найти файл в каталоге, указанном в качестве значения в реестре.

RegistryFileCheck не содержит элементов и имеет следующие атрибуты.

Атрибут Description
Property Обязательное. Имя свойства для хранения результата. Это свойство можно ссылаться на тест InstallConditions под элементом, который является дочерним элементом Command элемента. Дополнительные сведения см. в разделе <"Элементы Commands>".
Key Обязательно. Имя раздела реестра. Его значение интерпретируется как путь к файлу, если File атрибут не задан. Если этот ключ не существует, Property не задан.
Value Необязательно. Имя извлекаемого значения реестра. Значение по умолчанию — возвращать текст значения по умолчанию. Value должен быть строкой.
FileName Необязательно. Имя файла. Если задано, то значение, полученное из раздела реестра, считается путем к каталогу, и это имя добавляется к нему. Если этот параметр не указан, то значение, возвращаемое из реестра, должно быть полным путем к файлу.
SearchDepth Необязательно. Глубина поиска вложенных папок для именованного файла. Поиск является глубинным. Значение по умолчанию равно 0, которое ограничивает поиск папкой верхнего уровня, указанной значением раздела реестра.

Замечания

Хотя элементы под элементом InstallChecks определяют тесты для выполнения, они не выполняют их. Чтобы выполнить тесты, необходимо создать Command элементы под элементом Commands .

Пример

В следующем примере кода показаноInstallChecks, как элемент используется в файле продукта для платформа .NET Framework.

<InstallChecks>
    <ExternalCheck Property="DotNetInstalled" PackageFile="dotnetchk.exe" />
    <RegistryCheck Property="IEVersion" Key="HKLM\Software\Microsoft\Internet Explorer" Value="Version" />
</InstallChecks>

InstallConditions

При InstallChecks оценке они создают свойства. Затем свойства используются для InstallConditions определения того, должен ли пакет устанавливать, обходить или завершать сбой. В следующей таблице перечислены следующие элементы InstallConditions:

Условие Description
FailIf Если любое FailIf условие оценивается как true, пакет завершится ошибкой. Остальные условия не будут оцениваться.
BypassIf Если любое BypassIf условие имеет значение true, пакет будет обходить. Остальные условия не будут оцениваться.

Предопределенные свойства

В следующей BypassIf таблице перечислены элементы и FailIf элементы:

Свойство Примечания. Возможные значения
Version9X Номер версии операционной системы Windows 9X. 4.10 = Windows 98
VersionNT Номер версии операционной системы Windows. Major.Minor.ServicePack
VersionNT64 Номер версии 64-разрядной операционной системы Windows. Major.Minor.ServicePack.
VersionMsi Номер версии службы установщика Windows. 2.0 = Установщик Windows 2.0
AdminUser Указывает, имеет ли пользователь права администратора в операционной системе на основе Windows NT. 0 = нет прав администратора

1 = права администратора

Например, чтобы заблокировать установку на компьютере под управлением Windows 8, используйте следующий код:

    <!-- Block install on Windows 8 -->
    <FailIf Property="VersionNT64" Compare="VersionLessThan" Value="6.2" String="InvalidPlatform"/>

Чтобы пропустить выполнение проверка установки, если выполняется условие FailIf или BypassIf, используйте атрибут BeforeInstallChecks. Рассмотрим пример.

    <!-- Block install and do not evaluate install checks if user does not have admin privileges -->
    <FailIf Property="AdminUser" Compare="ValueEqualTo" Value="false" String="AdminRequired" BeforeInstallChecks="true"/>

Примечание.

Атрибут BeforeInstallChecks поддерживается начиная с выпуска Visual Studio 2019 с обновлением 9.

См. также