2012-04-20 4 views
0

Я работаю над проектом, который использует 2 проекта VD для распространения административных и пользовательских версий установок, и теперь мне нужно переключиться на WiX. Это был немного болезненный опыт отсутствия документации и всего, но мне удалось что-то сделать.WiX - Повышающие (или уменьшающие) привилегии во время установки

Однако есть еще одна проблема: я хочу создать только один .msi, который позволит пользователю выбирать, хочет ли он установить его как администратора или пользователя. Если он выбрал пользователя, я не хочу спрашивать его о повышении (поскольку он ему не нужен), также, если он выбрал администратора, я не хочу, чтобы установка выходила из строя, но запрашивала привилегии.

Моих текущие аварии решения в режиме администратора, если я изложу InstallPrivileges к limited, потому что пользователь не имеет разрешения на установку, и он запрашивает возвышение в пользовательском режиме, если я изложу его elevated.

Я считаю, что существует никак не, чтобы исправить это из-за совместимости с MSI, но, возможно, есть способ изменить привилегии с повышенного до ограниченного времени установки, которые мне не хватает.

В заключение, я хочу знать эти вещи:

  • Можно ли изменить привилегии на время установки
  • Если нет никакого способа сделать так, что это лучший способ решения этой проблемы (экспортирование 2 .msi-файлов или что-то в этом роде)

ответ

1

Одним из решений является создание двух отдельных инсталляторов, а затем их запуск через пользовательский загрузчик WiX (aka Burn). Бутстраппер будет отвечать за отображение пользовательского интерфейса и запуск соответствующего .msi.

Или вы можете разделить функции «admin» на отдельный .msi, а затем использовать пользовательский загрузчик для установки обоих .msis, если пользователь выбирает установку администратора.

+0

Спасибо за ваш ответ! Возможно, вам известно, есть ли способ каким-то образом перезапустить командную строку Votive (компиляция и компоновку) после первоначального запуска сборки, только с измененным файлом Product.wxs? –

+0

Не уверен. Я бы хотел создать две различные конфигурации для вашего проекта/решения. В свойствах проекта> build определите переменную препроцессора только для одной из этих конфигураций. Затем Product.wxs может включать/исключать элементы, основанные на настройке препроцессора. – BryanJ

Смежные вопросы