我想进行一次安装,可以是新安装和更新安装。 当它用作更新安装时,我想要更新一些文件,无论版本和修改日期时间如何。有些文件永远不会更新。
我尝试了什么: 将“REINSTALLMODE”设置为“amus”。并将永不更新文件组件的“永不覆盖”属性设置为“是”。
我得到了什么: 它不起作用。具有“Never overwrite = yes”的组件仍会以某种方式更新。
我的问题: 这是正确的吗? REINSTALLMODE的优先级高于组件的“永不覆盖”属性? 如何处理这个部分更新问题?
提前致谢。
答案 0 :(得分:1)
MSI具体File replacement logic。
我会考虑做一个Major upgrade。
假设这些是未版本控制的文件(例如text / xml配置文件,而不是程序集),我会在我想要永远更新的任何文件上手动设置文件版本(手动设置的版本将覆盖已安装的文件),并且单独留下文件替换逻辑应忽略的其他文件。
以下是关于REINSTALLMODE=amus的文档,其中提到“a”表示忽略文件版本控制规则并更新所有内容。不是你想要的。此外,我相信REINSTALLMODE通常用于“修复”操作,而不是安装/升级。
答案 1 :(得分:0)
我们这样做......
这意味着如果应用更新,则会重置默认配置,但不会重置每用户配置。在MSI更新期间保存所有设置等,不会覆盖。
根据您尝试“不更新”的文件,我怀疑您可能会沿着类似的路线做些什么。