Autoupdater.NET.Official 1.4.4

Details
Advisory: https://github.com/advisories/GHSA-75p2-hgw4-g7f7 Severity: critical
There is a newer version of this package available.
See the version list below for details.
dotnet add package Autoupdater.NET.Official --version 1.4.4                
NuGet\Install-Package Autoupdater.NET.Official -Version 1.4.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Autoupdater.NET.Official" Version="1.4.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Autoupdater.NET.Official --version 1.4.4                
#r "nuget: Autoupdater.NET.Official, 1.4.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Autoupdater.NET.Official as a Cake Addin
#addin nuget:?package=Autoupdater.NET.Official&version=1.4.4

// Install Autoupdater.NET.Official as a Cake Tool
#tool nuget:?package=Autoupdater.NET.Official&version=1.4.4                

How it works

AutoUpdater.NET downloads the XML file containing update information from your server. It uses this XML file to get the information about the latest version of the software. If latest version of the software is greater then current version of the software installed on User's PC then AutoUpdater.NET shows update dialog to the user. If user press the update button to update the software then It downloads the update file (Installer) from URL provided in XML file and executes the installer file it just downloaded. It is a job of installer after this point to carry out the update. If you provide zip file URL instead of installer then AutoUpdater.NET will extract the contents of zip file to application directory.

Using the code

XML file

AutoUpdater.NET uses XML file located on a server to get the release information about the latest version of the software. You need to create XML file like below and then you need to upload it to your server.

<?xml version="1.0" encoding="UTF-8"?>
<item>
    <version>2.0.0.0</version>
    <url>http://rbsoft.org/downloads/AutoUpdaterTest.zip</url>
    <changelog>https://github.com/ravibpatel/AutoUpdater.NET/releases</changelog>
    <mandatory>false</mandatory>
</item>

There are three things you need to provide in XML file as you can see above.

  • version (Required) : You need to provide latest version of the application between version tags. Version should be in X.X.X.X format.
  • url (Required): You need to provide URL of the latest version installer file between url tags. AutoUpdater.NET downloads the file provided here and install it when user press the Update button.
  • changelog (Optional): You need to provide URL of the change log of your application between changelog tags. If you don't provide the URL of the changelog then update dialog won't show the change log.
  • mandatory (Optional): You can set this to true if you don't want user to skip this version. This will ignore Remind Later and Skip options and hide both Skip and Remind Later button on update dialog.

Adding one line to make it work

After you done creating and uploading XML file, It is very easy to add a auto update functionality to your application. First you need to add following line at the top of your form.

using AutoUpdaterDotNET;

Now you just need to add following line to your main form constructor or in Form_Load event. You can add this line anywhere you like. If you don't like to check for update when application starts then you can create a Check for update button and add this line to Button_Click event.

AutoUpdater.Start("http://rbsoft.org/updates/AutoUpdaterTest.xml");

Start method of AutoUpdater class takes URL of the XML file you uploaded to server as a parameter.

AutoUpdater.Start should be called from UI thread.

Configuration Options

Disable Skip Button

If you don't want to show Skip button on Update form then just add following line with above code.

AutoUpdater.ShowSkipButton = false;

Disable Remind Later Button

If you don't want to show Remind Later button on Update form then just add following line with above code.

AutoUpdater.ShowRemindLaterButton = false;

Enable Error Reporting

You can turn on error reporting by adding below code. If you do this AutoUpdater.NET will show error message, if there is no update available or if it can't get to the XML file from web server.

AutoUpdater.ReportErrors = true;

Open Download Page

If you don't want to download the latest version of the application and just want to open the URL between url tags of your XML file then you need to add following line with above code.

AutoUpdater.OpenDownloadPage = true;

This kind of scenario is useful if you want to show some information to users before they download the latest version of an application.

Remind Later

If you don't want users to select Remind Later time when they press the Remind Later button of update dialog then you need to add following lines with above code.

AutoUpdater.LetUserSelectRemindLater = false;
AutoUpdater.RemindLaterTimeSpan = RemindLaterFormat.Days;
AutoUpdater.RemindLaterAt = 2;

In above example when user press Remind Later button of update dialog, It will remind user for update after 2 days.

Proxy Server

If your XML and Update file can only be used from certain Proxy Server then you can use following settings to tell AutoUpdater.NET to use that proxy. Currently, if your Changelog URL is also restricted to Proxy server then you should omit changelog tag from XML file cause it is not supported using Proxy Server.

var proxy = new WebProxy("ProxyIP:ProxyPort", true) 
{
    Credentials = new NetworkCredential("ProxyUserName", "ProxyPassword")
};
AutoUpdater.Proxy = proxy;

Check updates frequently

You can call Start method inside Timer to check for updates frequently.

WinForms

System.Timers.Timer timer = new System.Timers.Timer
{
    Interval = 2 * 60 * 1000,
    SynchronizingObject = this
};
timer.Elapsed += delegate
{
    AutoUpdater.Start("http://rbsoft.org/updates/AutoUpdaterTest.xml");
};
timer.Start();

WPF

DispatcherTimer timer = new DispatcherTimer {Interval = TimeSpan.FromMinutes(2)};
timer.Tick += delegate
{
    AutoUpdater.Start("http://rbsoft.org/updates/AutoUpdaterTestWPF.xml");
};
timer.Start();
Product Compatible and additional computed target framework versions.
.NET Framework net20 is compatible.  net35 is compatible.  net40 is compatible.  net403 was computed.  net45 was computed.  net451 was computed.  net452 is compatible.  net46 was computed.  net461 was computed.  net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (9)

Showing the top 5 NuGet packages that depend on Autoupdater.NET.Official:

Package Downloads
AutoUpdate2

AutoUpdate2

Updater.Detmach

Oluşturduğunuz Programlar İçin Otomatik Güncelleme Özelliğini Kullanabileceksiniz.

AutoUpdaterWpf

Package Description

Lanpuda.Client.Common

Package Description

Flyger.WpfUpdater.Net

Flyger.WpfUpdater.Net

GitHub repositories (43)

Showing the top 5 popular GitHub repositories that depend on Autoupdater.NET.Official:

Repository Stars
ferventdesert/Hawk
visualized crawler & ETL IDE written with C#/WPF
lay295/TwitchDownloader
Twitch VOD/Clip Downloader - Chat Download/Render/Replay
workspacer/workspacer
a tiling window manager for Windows
4sval/FModel
Unreal Engine Archives Explorer
Ruben2776/PicView
Fast, free and customizable image viewer for Windows 10 and 11.
Version Downloads Last updated
1.9.2 13,963 8/2/2024
1.9.1 7,755 6/18/2024
1.9.0 3,670 6/8/2024
1.8.6 5,395 5/11/2024
1.8.5 21,994 2/19/2024
1.8.4 46,655 8/20/2023
1.8.3 21,988 6/12/2023
1.8.2 5,893 5/17/2023
1.8.1 5,250 5/1/2023
1.8.0 5,835 4/19/2023
1.7.7 9,608 3/3/2023
1.7.6 34,443 11/1/2022
1.7.5 15,870 8/25/2022
1.7.4 11,167 7/14/2022
1.7.3 7,909 6/13/2022
1.7.2 4,584 6/6/2022
1.7.1 3,741 6/1/2022
1.7.0 133,016 7/17/2021
1.6.4 56,612 11/5/2020
1.6.3 25,402 9/15/2020
1.6.2 3,809 8/28/2020
1.6.1 2,038 8/28/2020
1.6.0 23,400 4/7/2020
1.5.8 29,125 11/1/2019
1.5.7 12,502 9/10/2019 1.5.7 has at least one vulnerability with critical severity.
1.5.6 9,936 8/21/2019 1.5.6 has at least one vulnerability with critical severity.
1.5.5 5,931 8/10/2019 1.5.5 has at least one vulnerability with critical severity.
1.5.4 7,235 7/19/2019 1.5.4 has at least one vulnerability with critical severity.
1.5.3 8,510 6/7/2019 1.5.3 has at least one vulnerability with critical severity.
1.5.2 3,018 5/29/2019 1.5.2 has at least one vulnerability with critical severity.
1.5.1 43,476 3/6/2019 1.5.1 has at least one vulnerability with critical severity.
1.5.0 5,963 1/26/2019 1.5.0 has at least one vulnerability with critical severity.
1.4.11 21,160 8/2/2018 1.4.11 has at least one vulnerability with critical severity.
1.4.10 7,305 6/11/2018 1.4.10 has at least one vulnerability with critical severity.
1.4.9 7,021 4/12/2018 1.4.9 has at least one vulnerability with critical severity.
1.4.7 6,453 2/10/2018 1.4.7 has at least one vulnerability with critical severity.
1.4.6 4,099 12/24/2017 1.4.6 has at least one vulnerability with critical severity.
1.4.5 3,095 12/6/2017 1.4.5 has at least one vulnerability with critical severity.
1.4.4 3,613 11/16/2017 1.4.4 has at least one vulnerability with critical severity.
1.4.3 7,886 8/5/2017 1.4.3 has at least one vulnerability with critical severity.
1.4.2 4,785 6/20/2017 1.4.2 has at least one vulnerability with critical severity.
1.4.1 2,523 6/19/2017 1.4.1 has at least one vulnerability with critical severity.
1.4.0 3,438 4/25/2017 1.4.0 has at least one vulnerability with critical severity.
1.3.2 21,973 9/3/2016 1.3.2 has at least one vulnerability with critical severity.

* Fixed bug that prevents the application from opening download page in the certain scenario even if the OpenDownloadPage property is set to true.
* Fixed issue where AutoUpdater sometimes crashed while Parsing remind later time.
* Fixed an issue that causes downloaded file to have the wrong filename.
* Fixed an issue that causes the scaling problem with fonts on High DPI display.
* UseLatestIE and OnDownloadComplete ZIP extraction will now get EXE name from Process.GetCurrentProcess() instead of Assembly.GetEntryAssembly() which is NULL when AutoUpdater.NET is run from an unmanaged application.
* Fixed issue that causes AutoUpdater.NET to fall into the infinite loop resulting in a StackOverflow exception if there is a problem reaching update file.
* Now AutoUpdater.NET will use the latest version of Internet Explorer available on the PC to show changelog inside WebBrowser control.
* Now if Start method is used from STA thread then it won't create a new thread to run the update logic. It will use new thread only if it was launched from an MTA thread.
* Now Remind Later timer won't use Thread pool thread to launch the Start method. It will use thread that launched the timer.
* Added event to parse custom AppCast file.
* Added ApplicationExitEvent to let developer handle exit logic themselves.
* Added ability to define Proxy Server to use for XML and Update file request.
* Added Japanese translation.