Изменение установки не запрашивает разрешения UAC - PullRequest
4 голосов
/ 27 декабря 2011

Я установил установщик для нашего продукта. Установщику нужны права администратора , поэтому я использовал setup bootstrapper с файлом манифеста (как рекомендовано здесь ), чтобы получить эти привилегии на машинах Windows с включенным UAC. Установка и удаление проходят нормально - у пользователя запрашивается разрешение, а установщик делает то, что ему нужно.

Но если вы запускаете Панель управления Программы и компоненты и выбираете «Изменить» * для установленной программы, возникает ошибка (пользовательская, из установщика LaunchConditions ), сообщая, что установщику нужны права администратора. И я не могу найти способ запросить разрешение в таком случае - Windows просто запускает файл MSI и ничего не знает о необходимых разрешениях.

Еще более странным является функционал восстановления - он запрашивает разрешение, но затем не может выполнить некоторые действия, которые были разрешены во время установки, с использованием SetupBootstrapper.

Я нашел похожую проблему здесь :

Но предлагаемые решения в нашем случае неприемлемы.

Единственный обходной путь для изменения функциональности теперь состоит в том, чтобы всегда использовать SetupBootstrapper и не использовать меню Программы и компоненты , но это не очень удобно и вынуждает пользователя держать установщик на своем / ее жесткий диск.

Кто-нибудь лучше посоветует?

PS: я использую WiX для создания установщика, поэтому было бы здорово услышать о решениях WiX, но я уверен, что это не зависит от языка создания установщика, а только по специфике MSI.

1 Ответ

4 голосов
/ 28 декабря 2011

Какие действия терпят неудачу?Если это действия, которые вы добавили в установку, убедитесь, что такие действия определены с Impersonate="no" и Execute="deferred" (или "commit" или "rollback") и что они расположены где-то между InstallInitialize и InstallFinalize.

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