当我在现有已安装的产品上运行新安装时,安装程序不会覆盖非EXE和DLL文件。对于EXE和DLL,我可以设置版本号,用于定义是否替换文件。但是对于包含纯文本的配置文件,这是不可能的。
是否有强制安装程序替换所有文件?
将DetectNewInstalledVersion
设置为True
或False
没有任何效果。
RemovePreviousVersions
设置为True
答案 0 :(得分:0)
Windows Installer的文件替换规则不允许替换用户修改的文件:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx
基本问题是,您并不真正希望产品安装数据库文件,填充数据,然后通过产品升级销毁它。
这很有可能发生了什么。如果使用以下命令记录升级:
msiexec / I [升级MSI的路径] / l * vx [文本日志文件的路径]
然后搜索文件名,它会告诉你它为什么不替换它。
另一种可能性是文件已在MSI文件的Component表中标记为NeverOverwrite。在您的情况下,这似乎不太可能,因为Visual Studio安装程序不在IDE中为此提供支持。这适用于安装后无法撤消的组件 - 它是系统设置,而不是MSI设置。