最近一两年在做跨平台的解决方案,使应用程序能支持Android, iOS, Windows, MacOs. Linux等操作系统,在Android, iOS上可以使用Google Play Store 和 Apple App Store 只带的自动更新特性,但在Windows, MacOs. Linux,就需要自己写解决方案。
今天新加坡国庆节,由于肺炎疫情,宅在家没事,就完成了从CodePlex到Github的迁移,该组件已经成功托管到Github,所以大家可以到上面下载其源代码,也可以提交Issue,具体地址:https://github.com/knightswarrior/AppAutoUpdater
2010年我在CodePlex上开源了这个框架,在十年时间内下载量接近百万,感谢各位社区朋友的支持,我也尽力在努力升级,同时也尽量在工作之余回答各位在使用中的问题,但是可能有一些没有回复到,希望各位海涵。
AutoUpdater is a library which allows developers to easily add auto update feature to their desktop (Windows, macOS and Linux) application.
I'm currently working on a cross-platform project which will support Platforms Android, iOS, Windows, MacOs. Linux, for Android and iOS, there have built-in auto update feature to use, but for Windows, MacOs, Linux, I found my previous open source project which I built in 10 years ago and got around 1 million downloads in Codeplex for last ten years still works, so I migrate it from Codeplex to Github and will continue to maintain this repository, issues here.
Fixing bugs and adding new features is a part of developing software applications. From my experience, sending application updates to users is also a critical part of developing applications, especially when the user has no advanced knowledge of computers.
In the Internet era today, the software developer must make application deployment and updating easier and often makes automatic application updates to do this.I already searched through the internet on this topic, but not much seems suited to my needs. So, I tried to create one myself.
This sample application is developed in C# as a library with the project name “AutoUpdater”. The DLL “AutoUpdater” can be used in a C# Windows application (WinForm, WPF, UWP and Xamarin).
There are two pages and very pretty simple,just as follows:
Figure 1
Figure 2
In the program that you want to be auto updateable, you just need to call the AutoUpdate function in the Main procedure. The AutoUpdate function will check the version with the one read from a file located in a Web Site/FTP. If the program version is lower than the one read the program downloads the auto update program and launches it and the function returns True, which means that an auto update will run and the current program should be closed. The auto update program receives several parameters from the program to be updated and performs the auto update necessary and after that launches the updated system.
#region check and download new version program bool bHasError = false; IAutoUpdater autoUpdater = new AutoUpdater(); try { autoUpdater.Update(); } catch (WebException exp) { MessageBox.Show("Can not find the specified resource"); bHasError = true; } catch (XmlException exp) { bHasError = true; MessageBox.Show("Download the upgrade file error"); } catch (NotSupportedException exp) { bHasError = true; MessageBox.Show("Upgrade address configuration error"); } catch (ArgumentException exp) { bHasError = true; MessageBox.Show("Download the upgrade file error"); } catch (Exception exp) { bHasError = true; MessageBox.Show("An error occurred during the upgrade process"); } finally { if (bHasError == true) { try { autoUpdater.RollBack(); } catch (Exception) { //Log the message to your file or database } } } #endregion
That’s all and just enjoy it!
The application is pretty simple,just contains two pages and some helper classes.
Figure 3
This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.
you can download the tool via https://github.com/knightswarrior/AppAutoUpdater/,If in doubt please contact me,Thanks!