Не требует повышения 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 и от мест, где они устанавливают данные.