运行时以静默方式更新应用程序

时间:2010-11-18 15:38:44

标签: c# .net patch silent

我的应用程序最初将与Windows Installer一起部署。

我正在寻找的解决方案的主要特征包括:

  • 支持应用时的静默更新 运行(或自动重启 客户)

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

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

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

应用程序是.net 2.0

3 个答案:

答案 0 :(得分:5)

您是否考虑过使用ClickOnce进行部署?它有一个以编程方式检查更新的工具,并可选择强制安装它们 - 请参阅http://msdn.microsoft.com/en-us/library/ms404263.aspx

答案 1 :(得分:2)

  • 您可以使用Restart Manager(在Vista和Win7中提供)以静默方式更新您的应用程序。
  • 不要忘记用户不是管理员。从Vista开始,如果您签署Windows Installer程序包,则可以在不需要当前用户的管理员权限的情况下更新应用程序。
  • 要使所有这些工作,您需要使用Windows Installer技术安装您的应用程序。您可以使用Wix创建xml文件并将其编译为.msi包。 Wix与VS很好地集成。

答案 2 :(得分:1)

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

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

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

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