Элемент <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). Он не содержит элементов и включает следующие атрибуты.
Атрибут |
Описание |
---|---|
Property |
Обязательный. Имя свойства для хранения результата. На это свойство может ссылаться тест в элементе InstallConditions, который является дочерним по отношению к элементу Command. Дополнительные сведения см. в разделе Элемент <Commands> (загрузчик). |
Name |
Обязательный. Полное имя проверяемой сборки. |
PublicKeyToken |
Обязательный. Сокращенное название открытого ключа, связанного с этой сборкой со строгим именем. Для всех сборок, хранящихся в глобальном кэше сборок, необходимо указывать имя, номер версии и открытый ключ. |
Version |
Обязательный. Версия сборки. Номер версии записывается в формате <основной номер версии >.<дополнительный номер версии >.<версия построения>.<версия редакции>. |
Language |
Необязательный. Язык для локализованной сборки. По умолчанию используется значение neutral. |
ProcessorArchitecture |
Необязательный. Процессор компьютера, для которого предназначена эта установка. По умолчанию используется значение msil. |
ExternalCheck
Этот элемент является необязательным дочерним элементом элемента InstallChecks. Для каждого экземпляра ExternalCheck загрузчик будет выполнять именованную внешнюю программу в отдельном процессе и сохранить ее код выхода в свойстве, заданном в Property. ExternalCheck полезен для реализации проверок сложных зависимостей, или когда единственным способом проверки существования компонента является создание его экземпляра.
Элемент ExternalCheck не содержит элементов и включает следующие атрибуты.
Атрибут |
Описание |
---|---|
Property |
Обязательный. Имя свойства для хранения результата. На это свойство может ссылаться тест в элементе InstallConditions, который является дочерним по отношению к элементу Command. Дополнительные сведения см. в разделе Элемент <Commands> (загрузчик). |
PackageFile |
Обязательный. Внешняя исполняемая программа. Эта программа должна быть включена в состав установочного пакета. |
Arguments |
Необязательный. Аргументы командной строки для исполняемого файла PackageFile. |
FileCheck
Этот элемент является необязательным дочерним элементом элемента InstallChecks. Для каждого экземпляра FileCheck начальный загрузчик определяет, существует ли именованный файл, и возвращает номер версии файла. Если файл не имеет номера версии, то загрузчик устанавливает для свойства с именем Property значение 0. Если файл не существует, то Property не присваивается какое-либо значение.
Элемент FileCheck не содержит элементов и включает следующие атрибуты.
Атрибут |
Описание |
---|---|
Property |
Обязательный. Имя свойства для хранения результата. На это свойство может ссылаться тест в элементе InstallConditions, который является дочерним по отношению к элементу Command. Дополнительные сведения см. в разделе Элемент <Commands> (загрузчик). |
FileName |
Обязательный. Имя файла для поиска. |
SearchPath |
Обязательный. Диск или папка, где выполняется поиск файла. Необходимо указать относительный путь, если установлено значение SpecialFolder; в остальных случаях необходимо указывать абсолютный путь. |
SpecialFolder |
Необязательный. Папка, представляющая особую значимость либо для Windows, либо для приложения ClickOnce. По умолчанию SearchPath интерпретируется как абсолютный путь. Допустимые значения: AppDataFolder. Папка данных для приложения ClickOnce; относится к текущему пользователю. CommonAppDataFolder. Папка с данными приложения, используемая всеми пользователями. CommonFilesFolder. Папка общих файлов для текущего пользователя. LocalDataAppFolder. Папка с данными для неперемещающихся приложений. ProgramFilesFolder. Стандартная папка Program Files для 32-разрядных приложений. StartUpFolder. Папка, содержащая все приложения, запускаемые при запуске системы. SystemFolder. Папка, содержащая 32-разрядные системные библиотеки DLL. WindowsFolder. Папка с системными файлами установки Windows. WindowsVolume. Диск или раздел с системными файлами установки Windows. |
SearchDepth |
Необязательный. Глубина поиска именованного файла в подпапках. Поиск выполняется преимущественно в глубину. По умолчанию задано значение 0, ограничивающее поиск папкой верхнего уровня, заданной параметрами SpecialFolder и SearchPath. |
MsiProductCheck
Этот элемент является необязательным дочерним элементом элемента InstallChecks. Для каждого экземпляра MsiProductCheck начальный загрузчик проверяет, завершена ли установка указанного продукта с помощью установщика Windows. Значение свойства задается в зависимости от состояния установленного продукта. Положительное значение указывает на то, что продукт установлен, а 0 или -1 — на то, что продукт не установлен. (См. также описание функции MsiQueryFeatureState в документации по пакету установщика Windows SDK.) . Если установщик Windows не установлен на компьютере, то свойство Property не задается.
Элемент MsiProductCheck не содержит элементов и включает следующие атрибуты.
Атрибут |
Описание |
---|---|
Property |
Обязательный. Имя свойства для хранения результата. На это свойство может ссылаться тест в элементе InstallConditions, который является дочерним по отношению к элементу Command. Дополнительные сведения см. в разделе Элемент <Commands> (загрузчик). |
Product |
Обязательный. GUID для установленного продукта. |
Feature |
Необязательный. GUID отдельной функции установленного приложения. |
RegistryCheck
Этот элемент является необязательным дочерним элементом элемента InstallChecks. Для каждого экземпляра RegistryCheck начальный загрузчик проверяет существование указанного раздела реестра или существование указанного значения.
Элемент RegistryCheck не содержит элементов и включает следующие атрибуты.
Атрибут |
Описание |
---|---|
Property |
Обязательный. Имя свойства для хранения результата. На это свойство может ссылаться тест в элементе InstallConditions, который является дочерним по отношению к элементу Command. Дополнительные сведения см. в разделе Элемент <Commands> (загрузчик). |
Key |
Обязательный. Имя раздела реестра. |
Value |
Необязательный. Имя извлекаемого значения реестра. По умолчанию возвращается текст значения по умолчанию. Объект Value должен иметь тип String или DWORD. |
RegistryFileCheck
Этот элемент является необязательным дочерним элементом элемента InstallChecks. Для каждого экземпляра RegistryFileCheck начальный загрузчик извлекает номер версии указанного файла, сначала извлекая путь к файлу из указанного раздела реестра. Это особенно полезно в случаях, когда требуется найти файл в каталоге, заданном в виде значения в реестре.
Элемент RegistryFileCheck не содержит элементов и включает следующие атрибуты.
Атрибут |
Описание |
---|---|
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:
FailIf |
Если любому из условий FailIf присвоено значение true, установка пакета будет прервана. Остальные условия не проверяются. |
BypassIf |
Если любому из условий BypassIf присвоено значение true, установка пакета пропускается. Остальные условия не проверяются. |
Предопределенные свойства
В следующей таблице представлены элементы BypassIf и FailIf.
Свойство |
Примечания |
Возможные значения |
---|---|---|
Version9X |
Номер версии операционной системы Windows 9X. |
4.10 = Windows 98 |
VersionNT |
Номер версии операционной системы семейства Windows NT. |
Major.Minor.ServicePack 5.0 = Windows 2000 5.1.0 = Windows XP 5.1.2 = Windows XP Professional c пакетом обновления 2 5.2.0 = Windows Server 2003 |
VersionNT64 |
Номер версии 64-разрядной операционной системы семейства Windows NT. |
См. выше. |
VersionMsi |
Номер версии службы установщика Windows. |
2.0 = Установщик Windows 2.0 |
AdminUser |
Наличие у пользователя привилегий администратора в операционной системе семейства Windows NT. |
0 = нет привилегий администратора 1 = есть привилегии администратора |
Например, чтобы заблокировать установку на компьютере под управлением Windows 95, используется следующий код:
<!-- Block install on Windows 95 -->
<FailIf Property="Version9X" Compare="VersionLessThan" Value="4.10" String="InvalidPlatform"/>