Den*_*nis 13 windows-installer uac wix bootstrapper burn
我创建了一个带有WIX的MSI,需要提升权限才能正常工作.在MSI项目中,我指定了这个
<Package [...] InstallPrivileges="elevated" />
Run Code Online (Sandbox Code Playgroud)
现在,我将这个MSI包含在基于WixWPF Bootstrapper的自定义bootsrapper项目中.据我了解,引导程序本身不应该改变机器状态,因此不应该需要提升权限.
我现在希望Bootstrapper能够自动启动具有提升特权的集成MSI,并在必要时提示用户使用UAC对话框.但事实并非如此.相反,安装失败了.但是,当我以管理员身份显式运行引导程序可执行文件时,它可以工作.
在安装MSI时,如何让引导程序要求提升权限?
Isa*_*110 19
由于未设置MSI 的INSTALLSCOPE属性,因此默认为每用户安装,并且引导程序应用程序认为它不需要任何ADMIN/Elevated权限来运行它.
现在,在您的情况下,您是MSI的作者,您可以轻松地将InstallScope添加到包元素中.
InstallScope="perMachine"
Run Code Online (Sandbox Code Playgroud)
如果您不是MSI的作者,仍然引导程序提供了一个属性,您可以使用该属性强制每台机器进行MSI/EXE.
那么为什么Bootstrapper认为Per-Machine安装需要提升权限而Per-User不需要?很简单,每个用户安装注册表值写在HKEY_CURRENT_USER下,对于每台机器安装,注册表值写在HKEY_LOCAL_MACHINE下.只有管理员用户可以读/写HKLM.
| 归档时间: |
|
| 查看次数: |
6603 次 |
| 最近记录: |