Mise à jour personnalisée
On va voir à présent que vous pouvez très bien personnaliser votre système de mise à jour en lui spécifiant de ne pas vérifier si une mise à jour est nécessaire à chaque fois mais en créant un bouton spécialement conçu à cet effet dans votre application. Une fois que l'utilisateur aura cliqué sur ce bouton, l'application vérifiera si une mise à jour est nécessaire.
Pour réaliser ce mini scénario, allez tout d'abord dans les propriétés de votre projet, dans la partie « Publish » et ensuite cliquez sur « Application Updates ». Sur la fenêtre qui s'ouvrira, désélectionnez « The application should check for updates ». L'application à présent ne vérifiera donc plus si une mise à jour est nécessaire à chaque lancement de l'application. Nous allons à présent réaliser notre système de mise à jour personnalisée. Pour cela ajouter en référence l'assembly « System.Deployment.dll » et dans le code de votre formulaire Windows, ajoutez le namespace « System.Deployment » via un simple « using ». Puis dans l'événement qui sera appelé lors du click sur le bouton, ajoutez le code suivant :
ApplicationDeployment applicationUpdater = ApplicationDeployment.CurrentDeployment;
if (applicationUpdater.CheckForUpdate())
{
DialogResult dr = MessageBox.Show("Une nouvelle version est disponible. Voulez vous la télécharger ?",
"Nouvelle version disponible",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
applicationUpdater.Update();
MessageBox.Show("Application mise à jour");
}else
{
MessageBox.Show("Mise à jour abordée");
}
}else
{
MessageBox.Show("Pas de nouvelle version");
} |
Pour ceux qui ont utilisé ClickOnce dans sa version Alpha, vous pouvez remarquer que le code a légèrement changé. Pour comparaison, voici ci-dessous le code correspondant à la version Alpha :
ApplicationUpdateService applicationUpdater = ApplicationUpdateService.CurrentDeployment;
Version currentApplicationVersion = applicationUpdater.CurrentVersion;
Version newApplicationVersion = applicationUpdater.CheckForUpdate();
if (newApplicationVersion > currentApplicationVersion)
{
DialogResult dr = MessageBox.Show( "Une nouvelle version est disponible. Voulez vous la télécharger ?",
"Nouvelle version disponible",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question );
if (dr == DialogResult.Yes)
{
applicationUpdater.Update();
MessageBox.Show( "Application mise à jour" );
}else
{
MessageBox.Show( "Mise à jour abordée" );
}
}else
{
MessageBox.Show( "Pas de nouvelle version" );
} |
Publiez ensuite votre application et lorsque vous allez cliquez sur le bouton de votre application, si une version supérieure est disponible, le message suivant s'affichera :