3

我有一个设置我的应用程序的 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 强制覆盖所有文件而不管版本如何?

如果我从设置中删除一个文件(如果在运行时存在会导致错误的文件),那么在设置之后拥有一个工作程序的唯一方法是先删除所有文件怎么办?

4

1 回答 1

1

您可以使用 msi 技巧。在 msi 数据库的文件表中,编辑版本列并输入更高的版本,例如 3.0。这样,您将利用文件版本控制规则。

于 2013-01-02T16:18:50.157 回答