【发布时间】:2015-06-18 10:30:29
【问题描述】:
我已经设置了我想要创建自动更新的 Windows 应用程序。为此,我使用了 ElecKey。对于安装升级,我创建了完整补丁,因此我创建了另一个具有相同升级代码和新产品版本的 MSI,并将 RemovePreviousVersion 设置为 True。但我发现即使应用程序正在运行,MSI 也没有替换文件,但 MSI 正在安装应用程序。怎么办?
【问题讨论】:
-
这个问题涉及的C#在哪里?
我已经设置了我想要创建自动更新的 Windows 应用程序。为此,我使用了 ElecKey。对于安装升级,我创建了完整补丁,因此我创建了另一个具有相同升级代码和新产品版本的 MSI,并将 RemovePreviousVersion 设置为 True。但我发现即使应用程序正在运行,MSI 也没有替换文件,但 MSI 正在安装应用程序。怎么办?
【问题讨论】:
听起来您正在使用 Visual Studio 安装程序项目,因为 RemovePreviousVersions 是他们使用的术语。所以:
“创建完整补丁”不是您在做的事情,所以使用该描述会使人们感到困惑。您正在进行重大升级,这是一个既是全新安装的 MSI,又是自动卸载旧产品(如果碰巧已经安装了旧产品)。
VS 安装项目不会升级单个文件,除非您增加它们的文件版本。与所有其他更新机制(补丁、服务包、热修复等)一样,只有在传入文件版本更高时才会替换文件。因此,假设您的升级工作正常,请增加版本化文件的文件版本,如果它们没有文件版本,则开始使用它们。
https://msdn.microsoft.com/en-us/library/aa367835(v=vs.85).aspx
【讨论】: