Как запустить Custom Action внутри MSI, созданного в WiX с повышенными привилегиями? - PullRequest
4 голосов
/ 29 марта 2011

У меня есть установщик, которому требуется доступ к реестру, а также копирование и удаление файлов с помощью пользовательских действий.В Windows XP установщик работает просто отлично, но в Vista и 7 установщик показывает ошибку, потому что не может получить доступ к папке, но если я запускаю установщик как администратор, все работает.

Итак, мне нужен установщикчтобы иметь возможность запускать пользовательское действие от имени администратора, даже если MSI не запускался таким образом (необходимо, чтобы установщик запускался обычными пользователями).Я пытался использовать EXE в начале моей установки, чтобы изменить реестр и позволить MSI работать нормально, но я не думаю, что это очень хорошее решение.

PS.Bootstrapper не подходит из-за требований клиента: S Все мои пользовательские действия отложены и имитируют = "нет"

Есть идеи?Спасибо

Ответы [ 2 ]

5 голосов
/ 30 марта 2011

Убедитесь, что:

  • это запланировано после InstallInitialize
  • Атрибут «Выполнить» имеет значение Отложено
  • Атрибут "Олицетворять" имеет значение нет

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

2 голосов
/ 30 марта 2011

Ваши пользовательские действия должны быть упорядочены между действиями InstallInitialize и InstallFinalize.

Получаете ли вы приглашение UAC при запуске программы установки?Если вы выполняете установку для каждой машины, вы получите приглашение UAC при нажатии кнопки Установить в мастере.Если вы не получите приглашение UAC, проверьте, установлено ли для свойства ALLUSERS значение 2. См. Также Пометка привилегий для MSI

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...