1

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

有无论如何强迫安装程序替换所有文件?

设置DetectNewInstalledVersionTrueFalse没有任何影响。

RemovePreviousVersions设置为True

回答

0

文件替换规则为Windows安装程序不允许用户修改的文件被替换:

https://msdn.microsoft.com/en-us/library/windows/desktop/aa370531(v=vs.85).aspx

最根本的问题是,你真的不想要产品安装数据库文件,用数据填充数据,然后用产品升级销毁数据库文件。

这很可能是发生了什么事情。如果你有这样的命令升级日志:

MSIEXEC/I [路径升级MSI]/L * VX [路径文本日志文件]

,然后搜索文件名,它会告诉你为什么它并没有取代它。

另一种可能性是该文件已被标记为MSI文件的组件表中的NeverOverwrite。这似乎不太可能,因为Visual Studio安装程序在IDE中不提供对此的支持。这适用于安装后的组件,不能撤消 - 这是系统设置,不是MSI设置。

相关问题