Visual Studio安装程序不会覆盖非二进制文件

时间:2016-12-13 05:43:31

标签: visual-studio installer override visual-studio-setup-proje

当我在现有已安装的产品上运行新安装时,安装程​​序不会覆盖非EXE和DLL文件。对于EXE和DLL,我可以设置版本号,用于定义是否替换文件。但是对于包含纯文本的配置文件,这是不可能的。

是否有强制安装程序替换所有文件?

DetectNewInstalledVersion设置为TrueFalse没有任何效果。

RemovePreviousVersions设置为True

1 个答案:

答案 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设置。