如何通过msi安装更新特定文件
问题描述:
我想要进行新安装和更新安装的安装。 当它用作更新安装时,我希望无论版本和修改的日期时间都更新一些文件。而且有些文件永远不会更新。如何通过msi安装更新特定文件
我试过的: 将“REINSTALLMODE”设置为“amus”。并将永不更新的文件组件的“永不覆盖”属性设置为“是”。
我得到: 它不起作用。具有“永不覆盖=是”的组件仍然以某种方式更新。我的问题: 这是正确的吗? REINSTALLMODE比组件的“Never overwrite”属性具有更高的优先级? 如何处理这个部分更新问题?
在此先感谢。
答
MSI有特定的File replacement logic。
我会考虑做一个Major upgrade。 (手动设置的版本将覆盖已安装的内容),我将手动设置任何文件上的文件版本(我手动设置的版本将覆盖已安装的文件),并留下文件替换逻辑应该忽略的其他文件。
这是一个关于REINSTALLMODE=amus的文档,其中提到'a'表示忽略文件版本控制规则并更新所有内容。不是你想要的。另外,我相信REINSTALLMODE通常是用于“修复”操作,无论如何不是安装/升级。
答
我们做这样的事情......
- 安装文件,程序文件
- 安装默认的配置对所有用户应用程序数据
- 复制默认配置到每个用户的应用程序数据,如果每个用户的配置不找到。
这意味着如果应用更新,默认配置将被重置,但每个用户的配置不会被重置。所有设置等均在MSI更新期间保存并不被覆盖。
根据你试图“不更新”的文件,我怀疑你可以做类似的事情。
很棒的建议!谢谢。但是这个问题是基于一个现有的遗留系统而没有这样设计的。还是谢谢你。 – redjackwong 2009-02-19 04:30:41