Windows自动软件更新

时间:2008-10-15 18:16:33

标签: .net deployment updates

为Windows窗体项目处理基于Web的自动软件更新有哪些好的解决方案?我知道微软一键,但目前对此不感兴趣。

8 个答案:

答案 0 :(得分:15)

ClickOnce适用于cookie切割器,但在安全性方面存在一些限制(即无法创建桌面图标,无法访问COM等)

假设您使用MSI安装应用程序。使用WIX(http://wix.sourceforge.net/)创建补丁(.msp)。您将需要查看Vista的最低特权用户帐户(LUA)修补程序,因为如果您不这样做,UAC会为您提供帮助。

然后您的应用程序执行以下操作:

  1. 通过HTTP检查新版本
  2. 下载MSP(因为UAC,请注意在Vista中将其放到哪里)
  3. 启动一个
  4. 的Shim exe
  5. 等待您的应用关闭
  6. 启动msp(在非交互模式下)
  7. 重新启动您的应用
  8. 这一切都可以在幕后自动发生,在XP和Vista上都没有用户交互。

    一个开始这个的好地方,并且通常使用WIX:

    http://www.tramontana.co.hu/wix/index.php (第4课是关于更新)

答案 1 :(得分:5)

不要太垃圾,但我们公司提供自动更新解决方案。它分为3部分:

wyUpdate处理所有Vista / Windows 7 UAC问题以及当您尝试更新复杂软件时不可避免地出现的所有文件权限问题。

答案 2 :(得分:3)

我们曾经一次写过自己的...这不是一个好主意。在许多情况下,您可以使用ClickOnce。我们实际上使用的是名为AutoUpdate+的产品,我们可以推荐。它特别特别的是它可以避免UAC弹出问题。

答案 3 :(得分:1)

这实际上取决于需要更新过程的复杂程度。

我有一些客户有着简单的需求,我们创建了自己的流程设置来处理它,在大约3个小时的开发过程中,我们有一个满足他们所有需求的完全可行的解决方案。

答案 4 :(得分:1)

微软一键式?你的意思是ClickOnce吗?点击一次获胜表格非常好。部署速度很快,所有更新过程都由自己处理。

答案 5 :(得分:0)

ClickOnce是您可以拥有的最佳选择,您可以选择是否需要下载新版本,使用旧版本,返回版本等等。

您可以随时构建自己的解决方案,检查某个网址中XML设置文件的版本号,如果它比当前版本更新,则更改用户以下载新版本,例如......

答案 6 :(得分:0)

我也听过它叫做clicktwice:+> WIX解决方案更多是我感兴趣的。是否有任何示例应用程序(带有源代码)使用此技术?

答案 7 :(得分:0)

这是我为满足WinForms和WPF应用程序的特定需求而编写的开源解决方案。一般的想法是尽可能以最低的开销获得最大的灵活性。

所以,集成非常容易,而且库可以为您完成一切,包括同步操作。它也高度灵活,让您确定要执行的任务以及在什么条件下 - 您制定规则(或使用已经存在的规则)。最后一点是对任何更新源(web,BitTorrent等)和任何 Feed格式的支持 - 任何未实现的内容,您都可以自己编写。

还支持冷更新(需要重启应用程序),并自动完成,除非为任务指定了“热交换”。

这可以归结为一个DLL,大小不到70kb。

http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

的更多详情

代码位于http://github.com/synhershko/NAppUpdate(根据Apache 2.0许可证授权)