Как убедиться, что функция установлена ​​во время установки Windows AdminInstall - PullRequest
3 голосов
/ 23 марта 2011

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

  1. Установка свойства перед действием AdminFISequence CostFinalize (когда msdn запрашивает таблицу условий). Условие в этом случае выглядит так:

    <Condition Level="1">( VersionNT >= 601 AND NOT FASTINSTALL = "1" ) OR INSTALLCONDFEATURE = "1"</Condition>

    где FASTINSTALL и INSTALLCONDFEATURE являются как безопасными, так и административными.

  2. Использование свойств ACTION или EXECUTEACTION установщика Windows. В этом случае условие выглядит примерно так:

    <Condition Level="1">( VersionNT >= 601 AND NOT FASTINSTALL = "1" ) OR ACTION = "ADMIN"</Condition>

Кажется, ни один из них не работает. Я просто что-то здесь упускаю или есть другой, лучший способ сделать это?

1 Ответ

6 голосов
/ 24 марта 2011

Функция с Feature / @ Level = "0" никогда не будет установлена ​​при установке администратора, согласно MSI SDK:

Во время административной установки, установщик создает исходное изображение для всех функций продукта, кроме те функции с 0 на уровне столбец таблицы объектов.

Так что вам нужно изменить свою логику; установите уровень функции на значение, большее нуля, и используйте Условия, чтобы установить его на ноль для установок без прав администратора.

...