Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Элемент 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.