如果存在以前的版本,如何制作msi覆盖程序?

我正在使用Visual Studio 2010,我正在开发一个Windows应用程序,同时尝试为它自动更新程序面临严重问题。

当程序找到新版本并尝试安装它时,它可能不会因为两个原因:

1 – 应用程序存在于我的程序文件中。 这样窗口出现了 在此处输入图像描述

2 – 应用程序已经打开“ the form that performed the update process ”。

该问题与版本号没有任何关系。

这是关于程序的存在以及安装新版本的能力,尽管之前的版本已经打​​开。

要启用自动主要升级机制,您需要增加ProductVersion并更改ProductCode 。 这是通过项目“属性”窗格完成的。

您可以在此处阅读有关升级的更多信息: http : //msdn.microsoft.com/en-us/library/windows/desktop/aa370579(v = vs。85).aspx

Cosmin是正确的,但如果您需要更具体的步骤,请尝试按照此其他Stack Overflowpost中列出的步骤操作:

  • 如何确保我的winform应用程序部署覆盖旧版本?

如果您要更新现有程序,这称为修补,因此您不需要使用MSI作为安装程序,而是请查看MSP而不是MSI。

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

对于我们 – 我们使用了一个加载屏幕并连接到一个SQL表,该表拥有二进制的相关.DLL列表。 然后我使用reflection来检查与启动目录中的版本号相比的版本号,如果它更新则更换它 – 这只是另一个想法,但如果您正在考虑使用某种类型的包更新现有软件,请查看进入MSP的。