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