Как заставить установщик 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"

Ответ 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.