我有一个安装程序,安装了一个最终被资源管理器使用的DLL。修改或覆盖该DLL需要重新启动丑陋的资源管理器。
如果我增加我的Wix ProductVersion(比如从4.0到4.1)但不更改任何与该dll相关的文件(dll的版本没有变化)我宁愿不让MSI / Wix尝试修改该dll。有没有办法告诉MSI / Wix只安装那些已经改变了最后一个MSI和当前正在运行的MSI的文件?
目前我的msi将通过Restart Manager重新启动Explorer,因为Explorer正在使用Wix想要更改的文件(dll),即使该文件没有真正有任何有意义的更改。
由于
答案 0 :(得分:1)
Brian Gillespie在How to implement WiX installer upgrade?的答案(关于RemoveExistingProducts
之后的InstallFinalize
安排)是否为你解决了这个问题?
答案 1 :(得分:0)
你使用升级吗?尝试在RemoveExistingProducts
之后InstallFinalize
安排RemoveExistingProducts
作为suggested by MikeBaz。在这种情况下,安装新版本,然后卸载旧版本,因此如果版本没有更改,DLL应保持不变。
如果在InstallInitialize
之前安排了{{1}},则会完全卸载旧版本,然后安装新版本。在这种情况下,必须在卸载旧版本时删除DLL,并使用新版本重新安装(重新)。