我为我们的产品实现了安装程序.安装程序需要管理员权限,因此我使用安装引导程序和清单文件(建议使用
here)在启用了UAC的Windows计算机上获得这些权限.安装和卸载都很顺利 – 要求用户授予权限,安装程序会执行它需要执行的操作.
但是,如果您运行控制面板→程序和功能并为已安装的程序选择“更改”*,则会发生错误(自定义,来自安装程序LaunchConditions),告知安装程序需要管理权限.在这种情况下我找不到任何方式来请求权限 – Windows只是运行MSI文件,并且不知道所需的权限.
更奇怪的是修复功能 – 它要求权限,但是然后无法使用SetupBootstrapper执行安装期间允许的某些操作.
我发现了类似的问题here:
但在我们的案例中,提议的解决方案是不可接受的.
现在改变功能的唯一解决方法是始终使用SetupBootstrapper并且不使用“程序和功能”菜单,但这不是非常用户友好的并且强制用户将安装程序保留在他/她的硬盘上.
有人建议吗?
PS:我使用WiX来创建安装程序,所以听到WiX解决方案会很棒,但我很确定它不依赖于安装程序创建语言,而只依赖于MSI细节.
什么行动失败了?如果它们是您添加到安装中的操作,请确保使用Impersonate =“no”和Execute =“deferred”(或“commit”或“rollback”)定义此类操作,并确保它们在InstallInitialize和InstallFinalize之间的某个位置排序.