Как заставить установщик WiX запрашивать административные привилегии?
У нас есть программа, которую мы разработали в доме. Мы обновляемся для использования Visual Studio 2012 и поэтому должны покинуть проект установщика Visual Studio. InstallShield LE давал нам проблемы с ярлыками, если приложение уже установлено. Это оставило меня, наконец, с WiX.
Я исследовал это в течение нескольких дней и прочитал несколько сообщений о том, как получить права администратора, но ни один из них, похоже, не работает. Элемент Package
имеет InstallPrivileges = "1" и присутствует следующий элемент Property
:
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
Он не будет запрашивать права администратора при его запуске, и поэтому он терпит неудачу, когда пытается создать папку программы в C:\Program Files(x86)
.
Ответы
Ответ 1
Ответ на Как заставить установщик WiX запрашивать административные привилегии
Решение найдено Opus Krokus в comment.
Ответ
Я добавил следующее (в элемент Package), и я не уверен, какой (или какая комбинация) дал мне то, что мне нужно, но он работает сейчас: InstallPrivileges = "повышенный" AdminImage = "yes" InstallScope = "perMachine"
Ответ 2
Посмотрите на ответ этот вопрос о переполнении стека.
Вот суть ответа:
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
Решение, предложенное Opus Krokus, не сработало для меня.
Ответ 3
Это то, что сработало для меня, для моего MSI, созданного для установки в Windows 7 (и более поздних версиях):
<!-- Set per-machine installation as default.
See See http://msdn.microsoft.com/en-us/library/dd408007.aspx for an explanation of ALLUSERS=2 and MSIINSTALLPERUSER="".
-->
<Property Id="ALLUSERS" Value="2" />
<!-- Needs to be empty value (and empty value must be commented out to get rid of error message when compiling):
<Property Id="MSIINSTALLPERUSER" Value="" />
-->
Как упоминалось в приведенном выше XML-комментарии, см. http://msdn.microsoft.com/en-us/library/dd408007.aspx.