我们安装程序的旧版本中的一个文件似乎与较新版本的同一文件相比具有较新的修改日期,因此在安装新版本的安装程序后该文件消失了。
我将.aip更改为“始终覆盖现有文件”,但这不起作用。我尝试在安装新版本之前删除该文件并且工作正常,因此看起来“始终覆盖现有文件”不会产生任何影响。
我错过了什么吗?如何确保始终覆盖文件?
更新1。
我检查过的其他事情:
答案 0 :(得分:2)
Windows Installer中没有任何内容可以做到这一点。我的意思是,这个功能在Component或File表中没有位。所以我怀疑AI可能正在使用#34;版本说谎"诀窍并说该文件具有最大可能版本(即使它是一个数据文件),以便它将覆盖系统上已有的文件。无论哪种方式,Windows都不会替换已经修改过的文件(谁想破坏用户数据?)因此有必要明确删除它。
答案 1 :(得分:1)
请检查旧版安装程序中文件的组件是否设置了“从不覆盖”属性?如果是这种情况,那么在升级安装期间,将保留旧文件(将跳过较新的文件安装),但由于Windows Installer错误,旧文件将在旧版本卸载期间删除(在RemoveExistingProducts操作上执行)。 / p>
如果是这种情况,那么(如果可能的话)应该从旧文件组件中删除Never Overwrite属性。
答案 2 :(得分:0)
疯狂的想法,但如果您将文件组件GUID设置为始终随每个构建更改,该怎么办?在wix中,你设置Guid =" *"。这样您就不会被MSI的组件/文件转换规则所困。虽然非正统,但我认为这会在每次升级时覆盖该文件。
答案 3 :(得分:0)
我也遇到了你上面提到的同样问题,我以棘手的方式解决了这个问题。希望它可以帮到你。