建议一种自动更新C#程序的方法。

17

我需要保持我编写的程序的最新状态,这将在接下来的一年左右频繁发生,并且需要通过互联网完成。你建议我从哪里开始,有哪些常见的技术?欢迎任何建议。

谢谢


2
你可以尝试从codeplex下载Autoupdater.NET。我自己开发了它,并且在我的应用程序中运行得非常好。你只需要在你的代码中添加一行,就完成了。 - Ravi Patel
本文概述了最流行的Windows更新框架解决方案。 - Michael Herrmann
4个回答

12

“Fairly well”(中文:尚可)并不够好 :)

NAppUpdate是一个我编写的开源库,旨在解决这个问题。总体思路是在尽可能低的开销下获得最大的灵活性。

因此,集成非常简单,该库几乎为您完成所有操作,包括同步操作。它还非常灵活,让您确定要执行哪些任务以及在什么情况下执行 - 您制定规则。最后但并非最不重要的是,它支持任何更新源(Web、BitTorrent等)和任何订阅格式 - 没有实现的东西您可以自己编写。

还支持冷更新(需要应用程序重新启动),除非为该任务指定了“热替换”,否则将自动执行。

所有这些都归结为一个小于70KB的DLL。

更多详细信息请访问http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/

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


9

ClickOnce的问题是,正如我刚刚发现的那样,它无法在终端服务环境中工作-请参见此处链接:http://support.microsoft.com/kb/2020945 - Swomble

7

有这样一个很棒的框架叫做NetSparkle,还有一个DotNetUpdater

我还没有使用过它们,但希望很快能够使用。您可以试用一下。


29
换句话说,你只是在谷歌上搜索并了解了它们。 - Zoran Pavlovic
这就是仅提供链接的问题:随着时间的推移,它们会失效。@Shaikh Mohd. Nadeem,DotNetUpdater现在还可用吗?在哪里可以获取信息?(Google在这种情况下无法提供帮助) - Alex Sanséau

3

ClickOnce是一个不错的解决方案,但如果您希望拥有完全控制权,则可以自己开发。我建议轮询Web服务以查找是否有更高版本可用,将所需文件下载到一个并行目录,并使用启动器(或更新快捷方式)自动启动最新版本。

这有点复杂,但适用于应用程序可能正在运行且因此无法覆盖的情况。


3
创建了自己的应用程序更新器后,我强烈建议使用ClickOnce。 - Dour High Arch

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