我想让自己的软件自动更新,但我没有广泛的网页设计技能,也没有任何可用的网站/在线托管。我想在C#/ WPF中做到这一点。
所以我想知道是否有办法使用谷歌代码制作自动更新服务,一些干净的东西。我猜我不是第一个想到它的人。
我这样做:
1)使用WebBrowser(静默)并导航到我的谷歌代码页。在那个页面上,我会在一个字段中输入最新的版本号。 (我需要以某种方式在页面内容中找到该数字)。
2)我将该数字与当前安装的版本进行比较(我可以将CURRENT_VER_NUMBER放在软件文件夹中的* .txt中)。
3)如果我得出新版本可用的结论,我会从我的谷歌代码项目的“下载”标签下载它,解压缩它,覆盖安装目录中的文件,然后重新启动应用程序。
首先,这样可行吗?当我想象它时,它听起来像脏代码。
然后,我不知道如何导航到下载选项卡,更不用说如何在那里选择最新版本(可能通过非常严格的文件命名),然后下载它。
最后但并非最不重要的,如果应用程序已经运行以执行更新检查,我无法在不退出应用程序的情况下覆盖文件,这是否意味着我必须制作某种“主应用程序”在启动我的软件之前执行检查?听起来很脏= /
非常欢迎任何意见,
度过愉快的一天。
答案 0 :(得分:3)
我建议你看看ClickOnce。它不需要您创建网页。您只需要托管2个文件:.manifest文件,其中包含有关您的应用程序的信息(版本,名称和包含应用程序的软件包的链接)以及最新版本的应用程序包。您唯一需要做的就是托管这两个文件,并将您的Google代码页上的链接放到该.manifest文件中。用户单击该链接,.net将自动安装或检查最新版本,并在必要时进行更新。
答案 1 :(得分:2)
您可能希望查看我编写并作为开源发布的库以透明地执行此操作 - 包括执行实际冷更新的外部更新应用程序。见http://www.code972.com/blog/2010/08/nappupdate-application-auto-update-framework-for-dotnet/
代码位于http://github.com/synhershko/NAppUpdate(根据Apache 2.0许可证授权)
答案 2 :(得分:1)
我遇到了一些问题,但总的来说并不是那么难。我认为这种方法很简洁,所以如果有人想要实现类似的东西我会把它放在那里。
您必须查看完整来源的https://code.google.com/p/theomniscientchimp/,当然可以根据您的项目进行调整。
感谢我对原帖的评论,让我有信心我做得对=)