Auto Updater .NET

Sans titre

Lorsque l’on diffuse une application .NET on est souvent confronté au problème de la diffusion des mises à jour. Ce besoin peut rapidement devenir une contrainte et s’avérer chronophage, par la complexité des solutions tierces ou propriétaires et lorsqu’elle est abordée en fin de cycle de développement.

Pour résoudre ce problème voyons le composant AutoUpdater.NET (URL du site : http://autoupdaterdotnet.codeplex.com/ et URL du NuGet : https://www.nuget.org/packages/AutoupdaterdotNet/). Afin de voir le fonctionnement de ce composant, je vous propose de réaliser une petite application pour implémenter les fonctions principales de AutoUpdater.NET.

Création de notre solution

Nous créons une solution vide de type Application Windows Forms  :

auto1

Nous ajoutons à notre solution le package AutoUpdater.Net via le gestionnaire de package de NuGet :

auto2

Nous nous retrouvons avec la solution suivante :

auto3

Site distant 

Pour vérifier la présence d’une nouvelle version à télécharger, notre application aura besoin d’un site distant contenant un fichier XML listant les propriétés de la version en cours, ainsi qu’un fichier HTML contenant la liste des modifications réalisées sur cette version.

Pour cela nous pouvons utiliser IIS afin de créer un répertoire virtuel qui va nous permettre de réaliser des tests en local :

auto4

auto5

Il nous reste à déposer sur ce répertoire virtuel un fichier de version, un fichier de note de version ainsi que l’exécutable de mise à jour.

Fichier de version

Le fichier de version est un fichier XML qui se compose ainsi :

  • Un titre
  • Un numéro de version
  • Une URL de téléchargement de l’exécutable de mise à jour
  • Une URL d’un fichier HTML contenant les notes de modification de la version
<?xml version="1.0" encoding="utf-8"?>
<item>
  <title>La nouvelle version 1.2.4.0 est disponible pour ApplicationTest</title>
  <version>1.2.4.0</version>
  <url>http://localhost/MiseAJour/autoUpdaterTest.exe</url>
  <changelog>http://localhost/MiseAJour/releasenotes.html</changelog>
</item>

Fichier de note de version

Le fichier de note de version se présente sous la forme d’un fichier HTML. Son contenu n’est pas normé, il peut être librement rempli.

Vérification de la version 

Maintenant que nous avons notre fichier de version et notre fichier de note de version disponible, nous pouvons ajouter l’appel à AutoUpdater.NET au sein de notre application.

La vérification d’une nouvelle version de notre application se fait simplement par l’appel de la fonction Start de la classe AutoUpdater.

Nous pouvons rajouter au démarrage de notre application l’appel de cette instruction, afin de vérifier à chaque lancement l’existence d’une nouvelle version de notre application.

using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;

using AutoUpdaterDotNET;

namespace ApplicationTest
{
    static class Program
    {
        /// <summary>
        /// Point d'entrée principal de l'application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            AutoUpdater.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-FR");
            AutoUpdater.Start("http://localhost/MiseAJour/version.xml");

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Start());
        }
    }
}

Désormais lors de son démarrage, notre application ira lire le fichier « version.xml » présent à l’url http://localhost/MiseAJour/. Ce fichier contiendra les informations relatives à la version en cours.

Interface de mise à jour 

Si nous exécutons notre solution, l'interface ci-dessous sera présentée en cas de détection d'une nouvelle version (comparaison du numéro de version de l'assembly en cours d’exécution et du fichier de version présent sur le serveur de mise à jour) :

auto6

On retrouvera les différentes informations contenues dans le fichier de version, c’est-à-dire le titre, le numéro de version ainsi que la présentation des modifications sous la forme du fichier HTML.

Le code d’AutoUpdater.NET est librement accessible à cette adresse : https://autoupdaterdotnet.codeplex.com/SourceControl/latest. Vous pouvez donc adapter cette interface selon vos besoins, et rajouter des propriétés ou bien faire évoluer l’interface.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.