не требует повышения UAC - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть настройка 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 Ответ

0 голосов
/ 21 декабря 2018

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

В Windows Installer 5 введено Однократная авторизация пакетов , которая позволяетиспользовать MSIINSTALLPERUSER и ALLUSERS вместе, чтобы выполнить две условные задачи:

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

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

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

...