我正在使用高级安装程序来编写 MSI,但这个问题对于 MSI 来说应该是标准问题。
为了避免每次我想要更改配置时都必须卸载\重新安装 MSI 包的麻烦,我有一个可以删除所有以前版本的 MSI(通过自定义操作执行 wmic product where name="NAME_HERE" uninstall)
MSI 在安装时设置注册表项(底层服务使用)。我重新推送 MSI 的目的仅仅是更新这些项(如果我使用 Orca 对属性表进行更改),但问题是这些项没有更新。当我使用
msiexec /package INSTALL.msi /lv* C:\install.log
我注意到,当 MSI 加载属性时,它们与之前安装的属性相同,而不是 Orca 中已更改的属性。让新注册表项反映出来的唯一方法是卸载\重新安装 MSI。
编辑:它似乎正在获取缓存在 C:\WINDOWS\Installer 中的 MSI 的属性