在运行时静默更新应用程序

5

我的应用程序最初将使用Windows Installer进行部署。

我正在寻找的解决方案的关键特点包括:

  • 支持在应用程序运行时进行静默更新(或自动重新启动客户端)

  • 易于维护和管理打包过程

  • 避免复杂的自定义或安装脚本

您有任何想法如何实现这一点吗?即使这意味着修改应用程序代码以支持任何想法。

应用程序是.net 2.0

3个回答

5

我的应用程序是一个桌面客户端,我认为ClickOnce在部署方面并不是一个可行的选择。 - Liviu Mandras
1
+1 - ClickOnce绝对可以用于桌面部署。只需在ClickOnce部署期间设置更新路径为URL,例如,然后您的应用程序将尝试在启动时连接到此URL,以便检查更新。 - Will Marcouiller
部署URL不一定需要是一个URL。它可以是一个UNC路径。您可以设置ClickOnce安装程序始终进行检查,用户在重新启动应用程序时将获得新版本。 - Darryl Braaten

2
  • 您可以使用Restart Manager(适用于Vista和Win7)静默更新应用程序。
  • 请注意,用户不一定是管理员。自从Vista以来,如果您对Windows Installer包进行签名,则可以在不需要当前用户的管理员权限的情况下更新应用程序。
  • 为了使所有这些工作正常运行,您需要使用Windows Installer技术安装应用程序。您可以使用Wix创建一个XML文件,并将其编译为.msi包。 Wix与VS集成得很好。

1

代理设计模式将帮助您实现此目标,而这是用于插件的模式。

另一个简短的解释是使用四人帮-代理设计模式

对程序集的影子复制有所了解肯定对这个技巧有用,因为您可以将更新的程序集影子复制到应用程序程序集文件夹中,然后使应用程序意识到更改,然后卸载旧程序集并加载新程序集以使更改生效,而无需重新启动应用程序,这对最终用户来说是完全透明的。

一个更简单的方法可能是ClickOnce部署,您可能会对以下建议的链接感兴趣。


你能更好地解释一下这个模式如何帮助我吗? - Liviu Mandras

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接