Не требует повышения UAC

У меня есть настройка wix, которая может быть установлена ​​для каждого пользователя и для каждой машины.

Я использую WixUI_Advanced диалог выбора между perUser и perMachine.

Тем не менее, даже будучи пользователем, программа в конечном итоге запрашивает привилегии UAC, и я не могу сказать, почему.

Я проверил это с настройкой InstallPrivileges="limited" установка работает нормально.

<Package Id="*" InstallerVersion="500" Compressed="yes" 
    Description="!(loc.ProductDescription)"
    Comments="!(loc.Comments) $(var.VersionNumber)" InstallPrivileges="limited" />

Есть ли способ условно установить InstallPrivileges на основе выбора пользователя?

1 ответ

Атрибут InstallPrivileges отображается на бит 3 свойства "Сводная информация о количестве слов". Это включает и отключает само повышение прав и предназначено для использования в пакетах, которые заранее знают, что они будут установлены только для каждого пользователя.

В установщике Windows 5 появилась функция создания одного пакета, которая позволяет использовать MSIINSTALLPERUSER и ALLUSERS вместе для выполнения двух условий:

  • подавить запрос на повышение прав
  • перенаправить расположение компьютеров для файлов и разделов реестра в расположение пользователей

Поэтому, если вам требуется условное повышение прав и условная установка для каждого пользователя, и если вы можете безопасно требовать Windows 7 или более позднюю версию, найдите лучший способ условно установить MSIINSTALLPERUSER=1 и ALLUSERS=2. (Я не знаю, есть ли какие-либо готовые наборы диалогов, которые делают это для WiX или нет.)

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

Другие вопросы по тегам