我有一个 MSI 可以设置我的应用程序。它只有一个组件,仅安装到 %PROGRAMFILES%(无共享二进制文件)。简化后,它看起来像这样
Msi file, Monday build:
Program.exe (v1.0.0)
ThirdPartyLibrary.dll (v2.0.1)
现在,如果我发现程序中有错误是由于我将 ThirdPartyLibrary dll 从 v2.0.0 升级到 v2.0.1,因此将引用还原为 v2.0.0,似乎我的 MSI 不会自动替换安装目录下的文件?
Msi file, Tuesday build:
Program.exe (v1.0.0)
ThirdPartyLibrary.dll (v2.0) <- downgraded
确保程序文件夹始终准确包含我的设置中的二进制文件的最佳做法是什么?我应该 a) 在复制新文件之前删除设置目录中的所有内容吗?是否有一个选项(在 Wix 中)我可以使用它使 msi 强制覆盖所有文件,而不管版本如何?
如果我从安装程序中删除一个文件(如果在运行时存在会导致错误的文件),那么在安装程序之后运行程序的唯一方法是先删除所有文件吗?
最佳答案
您可以使用 msi 技巧。在 msi 数据库的文件表中编辑版本列并输入更高版本,例如 3.0。这样您就可以利用文件版本控制规则。
关于wix - 如何确保我的 MSI 安装了降级的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14122136/