5

我为我们的产品实施了安装程序。安装程序需要管理员权限,因此我使用setup bootstrapper和清单文件(如这里推荐的那样)在启用了 UAC 的 Windows 机器上获得这些权限。安装和卸载都很好 - 用户被要求获得许可,安装程序会做它需要做的事情。

但是,如果您运行控制面板程序和功能并为已安装的程序选择“更改”*,则会发生错误(自定义,来自安装程序 LaunchConditions),告知安装程序需要管理权限。在这种情况下,我找不到任何请求权限的方法——Windows 只是运行 MSI 文件,并且对所需权限一无所知。

更奇怪的是修复功能 - 它要求许可,但随后无法使用 SetupBootstrapper 执行安装期间允许的某些操作。

我在这里发现了一个类似的问题:

但在我们的案例中,建议的解决方案是不可接受的。

现在,更改功能的唯一解决方法是始终使用 SetupBootstrapper,而不使用“程序和功能”菜单,但这对用户不太友好,并迫使用户将安装程序保留在他/她的硬盘上。

有没有更好的建议?

PS:我使用WiX创建安装程序,因此很高兴听到有关 WiX 解决方案的信息,但我很确定它不依赖于安装程序创建语言,而仅取决于 MSI 细节。

4

1 回答 1

4

哪些操作失败了?如果它们是您添加到安装中的操作,请确保这些操作是用Impersonate="no"and Execute="deferred"(或"commit"or "rollback")定义的,并且它们的顺序介于InstallInitializeand之间InstallFinalize

于 2011-12-28T15:02:50.307 回答