我有一个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强制覆盖所有文件,无论版本如何?
如果我从设置中删除文件(如果在运行时出现会导致错误的文件),那么在设置后获得工作程序的唯一方法是,如果它首先删除了所有文件,该怎么办?
答案 0 :(得分:1)
你可以使用msi技巧。在msi数据库的File表中,编辑Version列并输入更高版本,例如3.0。这样您就可以利用文件版本控制规则。