我为我们的产品实施了安装程序。安装程序需要管理员权限,因此我使用setup bootstrapper和清单文件(如这里推荐的那样)在启用了 UAC 的 Windows 机器上获得这些权限。安装和卸载都很好 - 用户被要求获得许可,安装程序会做它需要做的事情。
但是,如果您运行控制面板→程序和功能并为已安装的程序选择“更改”*,则会发生错误(自定义,来自安装程序 LaunchConditions),告知安装程序需要管理权限。在这种情况下,我找不到任何请求权限的方法——Windows 只是运行 MSI 文件,并且对所需权限一无所知。
更奇怪的是修复功能 - 它要求许可,但随后无法使用 SetupBootstrapper 执行安装期间允许的某些操作。
我在这里发现了一个类似的问题:
但在我们的案例中,建议的解决方案是不可接受的。
现在,更改功能的唯一解决方法是始终使用 SetupBootstrapper,而不使用“程序和功能”菜单,但这对用户不太友好,并迫使用户将安装程序保留在他/她的硬盘上。
有没有更好的建议?
PS:我使用WiX创建安装程序,因此很高兴听到有关 WiX 解决方案的信息,但我很确定它不依赖于安装程序创建语言,而仅取决于 MSI 细节。