Ответ 1
Я думаю, если вы просто добавите
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
он должен решить проблему. Дайте мне знать, если нет, и я могу сделать еще несколько проверок.
Я разработал собственный установщик с WiX для приложения .NET WPF. Он отлично работает, если я щелкнул правой кнопкой мыши и запустил его как администратора, однако при запуске без него некоторые компоненты не могут быть установлены из-за недостаточных привилегий.
Компоненты включают SQL Server Express 2008 R2, FoxIt Reader, компонент ActiveX и некоторые другие. Это также требует, чтобы некоторые скрипты SQL запускались во вновь установленной базе данных - в любом случае все они требуют прав администратора.
Я попробовал добавить в пакет node атрибуты InstallScope = "perMachine" и InstallPrivileges = "повышенные", но это, похоже, не меняет.
Я уверен, что это что-то глупое, но я не нашел ничего в ссылке или в Интернете.
Я думаю, если вы просто добавите
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
он должен решить проблему. Дайте мне знать, если нет, и я могу сделать еще несколько проверок.
Для меня я должен был запустить команду реестра, чтобы удалить переменную системной среды с помощью элемента CustomAction WiX, требующего прав администратора.
Использование CustomAction → Impersonate = "no" работало для меня, как указано в post fooobar.com/questions/349983/....
Пользовательский код действия WiX:
<CustomAction Id = "Uninstall_MYSYSENV"
Directory = "INSTALLFOLDER"
ExeCommand = 'cmd.exe /c "reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v MYSYSENV /f"'
Execute = "deferred"
Impersonate= "no"
Return = "asyncNoWait"
/>
<InstallExecuteSequence>
<Custom Action="Uninstall_MYSYSENV"
After="InstallInitialize">Installed AND NOT UPGRADINGPRODUCTCODE</Custom>
</InstallExecuteSequence>
Добавьте это в свой элемент пакета
<Property Id="ALLUSERS" Value="1" /> <!--equals to install="permachine" at package element but this element depricated -->
<Property Id="MSIUSEREALADMINDETECTION" Value="1" />
<Condition Message="Please Run as Administrator.">
Privileged
</Condition>
Затем создайте простой файл sfx для файла MSI с помощью Winrar и следующих параметров:
Вкладка "Настройка"> "Запустить после ввода": имя вашего msi файла
Вкладка "Дополнительно"> "Отметить запрос на доступ к административному доступу"