如何让Wix只安装修改过的文件

时间:2012-11-16 00:07:44

标签: wix windows-installer

我有一个安装程序,安装了一个最终被资源管理器使用的DLL。修改或覆盖该DLL需要重新启动丑陋的资源管理器。

如果我增加我的Wix ProductVersion(比如从4.0到4.1)但不更改任何与该dll相关的文件(dll的版本没有变化)我宁愿不让MSI / Wix尝试修改该dll。有没有办法告诉MSI / Wix只安装那些已经改变了最后一个MSI和当前正在运行的MSI的文件?

目前我的msi将通过Restart Manager重新启动Explorer,因为Explorer正在使用Wix想要更改的文件(dll),即使该文件没有真正有任何有意义的更改。

由于

2 个答案:

答案 0 :(得分:1)

Brian Gillespie在How to implement WiX installer upgrade?的答案(关于RemoveExistingProducts之后的InstallFinalize安排)是否为你解决了这个问题?

答案 1 :(得分:0)

你使用升级吗?尝试在RemoveExistingProducts之后InstallFinalize安排RemoveExistingProducts作为suggested by MikeBaz。在这种情况下,安装新版本,然后卸载旧版本,因此如果版本没有更改,DLL应保持不变。

如果在InstallInitialize之前安排了{{1}},则会完全卸载旧版本,然后安装新版本。在这种情况下,必须在卸载旧版本时删除DLL,并使用新版本重新安装(重新)。