如果存在以前的版本,如何制作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的。