2010-11-18 71 views
3

我的应用程序将最初与Windows Installer一起部署。运行时无提示更新应用程序

我要寻找的解决方案的主要特点包括:

  • 支持静默更新,而应用程序是 运行(或自动重启 客户端)

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

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

你有什么想法,我该怎么做到这一点?即使这意味着修改应用程序代码以支持任何想法。

应用是.NET 2.0

回答

5

您是否考虑过使用ClickOnce进行部署?它有一个工厂以编程方式检查更新和可选强制才能进行安装 - 看http://msdn.microsoft.com/en-us/library/ms404263.aspx

+0

我的应用程序是桌面客户端,我不认为点击一次可以成为部署的可行选项。 – 2010-11-18 15:51:31

+1

+1 - ClickOnce绝对适合桌面部署。例如,只需在将ClickOnce部署期间的更新路径设置为URL,然后您的应用程序就会尝试在启动时连接到此URL,以便它可以检查更新。 – 2010-11-18 15:55:50

+0

部署网址不需要是URL。它可以是UNC路径。您可以将clickonce安装程序设置为始终检查,并且每当用户重新启动应用程序时,用户都将获得新版本。 – 2010-11-18 17:01:30

1

Proxy Design Pattern将帮助你实现这一目标,而这是用于插件的模式。

另一个简短的解释是用Gang of Four - Proxy Design Pattern

注意程序集的Shadow Copying对于这个技巧绝对有用,因为您将更新后的程序集复制到应用程序程序集文件夹中,然后可以使应用程序知道更改,然后卸载旧程序集并加载新的变更生效,也就是说,甚至不必重新启动应用程序,这对最终用户来说绝对透明。

更简单的方法可能是ClickOnce Deployment,您可能有兴趣阅读有关遵循所需链接的信息。

+0

您能否更好地解释这种模式对我有何帮助? – 2010-11-18 15:48:03

2
  • 可以静默使用Restart Manager(在Vista和Win7提供)更新应用程序。
  • 不要忘记,用户不是管理员。从Vista开始,如果您签署了Windows Installer软件包,则可以更新应用程序,而不需要当前用户的管理员权限。
  • 对于所有这些工作,您需要使用Windows Installer技术来安装您的应用程序。您可以使用Wix创建一个xml文件并将其编译为.msi包。 Wix与VS完美整合。
相关问题