Можно ли использовать логический или или отрицать условие в Prqs installshield 2012?
-
12-12-2019 - |
Вопрос
У меня есть PRQ, который устанавливает MS SQL Shared объекты управления . У меня есть состояние, которое устанавливает PRQ, если этот реестр не существует
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{08ECC740-2B3E-45D7-860C-59B511386286}
.
Это работает нормально, пока пользователь не будет установлен с другим кодом продукта - это происходит с нашей командой Dev, все время, когда они устанавливают SQL2008. Установщик PRQ начнет существует с ошибкой.
Мне нужно лучшее состояние. Что я хотел бы сделать: Если (версия <= w.x.y.z || не найдена версия) Затем установите PRQ
в installedshield Предварительный вариант редактора он говорит
Следующие условия должны быть выполнены для предварительного условия для запуска. Здесь вы можете определить ключевые ключи файлов и реестра, что предварительное условие будет Ищите, чтобы определить, следует ли его запустить. Если нет Условия, предпосылкой всегда будет работать.
Это согласуется с моими выводами - условия находятся вместе. Есть ли несколько неопубликованных соус или или отрицательных условий в XML? Я передан прямо сейчас, потому что хочешь запустить PRQ, если версия в реестре <что я устанавливаю.
<conditions>
<condition Type="32" Comparison="2"
Path="HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SharedManagementObjects\CurrentVersion"
FileName="Version" ReturnValue="10.1.2531.0">
</condition>
</conditions>
.
Тип="32" - «запись реестра имеет указанное значение версии» Сравнение= «2» - «данные о целевой системе меньше указанных данных»
Боковой вопрос: есть ли место, где перечислены типы и сравнения?
Этот тип сравнения не имеет сравнения с состояниями «данные о целевой системе», меньше указанных данных
Есть ли способ сделать эту работу? Условие «Файл с определенной версией существует, имеет значение, если версия файла меньше, чем версия, указанная выше (или файл, не найден в целевой системе). Но это не будет работать, чтобы проверить файл, установленный SMO - пользователь, возможно, установил его на некотором диске, отличном от C :.
Я надеюсь, что я что-то упускаю. Чтобы ты делал?
Решение
Что я обычно делаю, не использует абстрактные вещи, такие как записи ARP, чтобы обнаружить зависимость.Я иду на саму зависимость.Если вам нужна DLL, потом посмотрите, если DLL там вместо того, чтобы беспокоиться о том, чтобы обнаружить что-то, что должно было установить DLL.