我的wix安装程序存在问题,我想提供一些建议。
我正在使用wix创建一个执行每用户安装的msi。每个用户都是必需的,因此我不需要管理员权限进行安装。我在自定义操作上设置了installscope = perUser和impersonate = yes。除非有组策略设置为阻止每个用户安装,否则这种方法很有效。在这种情况下,任何人都可以为另一个拥有运行msi策略权限的管理员用户提供一种方法来运行安装程序,并且仍然将自定义操作写入已登录的用户HKCU注册表配置单元。
希望这是有道理的
谢谢
答案 0 :(得分:1)
理想情况下,您不应该在写入HKCU时进行自定义操作。如果我们知道你在写什么,那么标准的WiX注册表元素可能会创建条目,因此你不需要代码。或者你可以编写一个WiX半自定义动作,将所需的行写入Registry表,尽管它有明显的复杂性,但它是一个更简单的设计。
默认情况下,模拟的自定义操作无法访问HKCU,因为模拟并不意味着“与具有这些凭据的交互式登录用户的行为相同”。模拟仅表示您使用用户的凭据运行。这并不意味着您已加载用户的配置文件(注册表配置单元)。 LoadUserProfile的文档解释了这一点。因此,您需要为安装用户执行LoadUserProfile。这一切都变得相当复杂,并且可能是编写这些条目的最不好的方式。