автоматическая установка wix считывает параметры командной строки, передаваемые в msiexec - PullRequest
2 голосов
/ 11 ноября 2011

Я пишу установщик, используя wix.Для установки без вывода сообщений с использованием msiexec я хотел бы предоставить несколько параметров из командной строки, которые я хочу установить в свойствах wix.

Эти свойства я использую для включения / отключения нескольких функций.

Может кто-нибудь сказать, пожалуйста, как читать те свойства командной строки, которые передаются в msiexec.Используя C ++ Custom Action, мы читаем, используя MsiGetProperty

Большое спасибо ..

С наилучшими пожеланиями, Марк

Ответы [ 3 ]

7 голосов
/ 11 ноября 2011

Чтобы сделать свойство доступным из командной строки, вы должны определить его, используя имя в верхнем регистре. Я часто использую условие запуска, чтобы проверить, что свойства были переданы в командной строке:

<Property Id="PROPNAME" Admin="yes" />
<Condition Message="Public Property PROPNAME not passed">Installed or PROPNAME</Condition>

Установленная переменная проверяет только значение свойства при установке, а не при удалении.

Командная строка для msiexec выглядит следующим образом:

msiexec -i <msiname.msi> PROPNAME="PROPVALUE"
6 голосов
/ 11 ноября 2011

Вам также следует обратить внимание на свойство ADDLOCAL .Вероятно, вы можете упростить вашу проблему с помощью командной строки, например:

msiexec /i product.msi ADDLOCAL=FEATURE1,FEATURE2,FEATURE4,FEATURE5
2 голосов
/ 11 ноября 2011
Элемент

A Feature может использовать один или несколько элементов Condition в качестве дочерних элементов.Условие объекта может использовать свойства установщика непосредственно в их отформатированной форме , например:

[PROPERTY_NAME] = "value"

Каждый элемент условия объекта должен использовать атрибут Level .В вашем случае это может быть 0, поэтому функция не устанавливается при выполнении условия.По сути, вы установите условие для пропуска функции.

...