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

时间:2012-08-31 08:01:53

标签: c# deployment setup-project wizard

我正在使用Visual Studio 2010,我正在开发一个Windows应用程序,并且在尝试为它创建一个自动更新程序时遇到了严重的问题。

当程序找到新版本并尝试安装它时,由于两个原因,它无法实现:

1 - 应用程序存在于我的程序文件中。这样窗口出现了 enter image description here

2 - 应用程序已经打开" the form that performed the update process"。

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

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

3 个答案:

答案 0 :(得分:5)

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

您可以在此处详细了解升级:http://msdn.microsoft.com/en-us/library/windows/desktop/aa370579(v=vs.85).aspx

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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

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

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