通过互联网更新MSI安装的最佳方法是什么?

时间:2012-02-07 10:23:01

标签: windows-installer auto-update

通过互联网更新MSI安装的最佳方法是什么?

ClickOnce不支持MSI。

我需要通过互联网自动进行更新,就像发生Windows更新一样。

理想情况下,我希望我的应用程序能够自动检测到更新是否可用并下载并安装。

答案应该只处理MSI安装。我不介意是否需要安装Windows服务来监控更新。

5 个答案:

答案 0 :(得分:14)

以下是我最近为客户所做的事情:

用户界面正在以登录用户身份运行。

该服务作为系统运行。该服务检查内容并将其下载到临时目录。然后它使用/ JM命令通告MSI。安装程序现在可以由非特权用户安装。

服务向应用程序发送IPC消息,说明是时候安装了。应用程序启动安装程序,向其传递一个标志,指示重新启动应用程序。应用程序退出释放锁定的文件。

在安装程序结束时,该标志会使安装程序重新启动应用程序。

另请查看wuw4库。它有助于创建大量此解决方案。

这是一个复杂的模式,但效果很好。我拥有一家可以帮助您制定此解决方案的公司。 :)

答案 1 :(得分:2)

您可以使用msiexec实用程序。 Here你可以找到一个例子。

答案 2 :(得分:1)

Windows Installer不支持自动更新,也不会处理其传递。我工作的公司销售定位updates and more的产品。

答案 3 :(得分:1)

这是我通常会做的(它只是我如何更新程序的概念):

  • 使用Advanced Installer或任何其他MSI installer/packer支持Command Line来打包更新程序的文件。您需要正确设置参数并在进行下一步之前对其进行测试。

  • 转到Visual Studio - >然后选择你的项目 - >属性 - >建立活动。

  • 在“Post-Build event command line”文本框中输入您之前创建的命令行参数,然后单击“确定”。

  • 现在无论何时构建项目,visual studio都会自动使用MSI安装程序/打包程序打包文件。

  • 最后一步是从命令行查找FTP Client个作品。

  • 设置正确的参数并将其添加到上一个之后的“Post-Build事件”。

  • 现在,如果您再次使用visual studio构建项目。您的文件将自动打包,然后上传到您的服务器。

现在您的文件应该在服务器上完全更新,您不必再担心了。这是我发现的最佳解决方案,我正在使用它,它就像一个魅力......

编辑:还有一件事,您还可以添加一个简单的例程来查找程序内服务器上的更新更新。例如,检查文件的MD5哈希或文件版本等。一旦例程找到新的更新,它应该提示给用户,然后你可以告诉用户下载最新的更新等...

答案 4 :(得分:0)

你检查过App-Virtualization吗? http://www.microsoft.com/en-us/windows/enterprise/products-and-technologies/virtualization/default.aspx

这是将可执行文件/ msi流式传输到客户端的好方法,同时确保它始终运行最新的msi。