Vlad's Blog

The Owls Are Not What They Seem

  Home :: Contact :: Syndication  :: Login
  207 Posts :: 17 Stories :: 85 Comments :: 0 Trackbacks

News

DotNet Emplois

Article Categories

Archives

Message Categories

.NET Emplois

Labo .NET

Site .NET Anglais

Sites .NET Francais

Sites Divers et variés

Stats

1.          Introduction

Depuis la conférence PDC 2003, Microsoft a communiqué sur une nouvelle technologie qui sera disponible dès Visual Studio Whidbey : la technologie « ClickOnce ». Cette technologie va permettre de faciliter le déploiement mais aussi la mise à jour des applications Windows. L’installation se fera en un seul click à chaque lancement de votre application Windows, l’application vérifiera si une mise à jour est nécessaire, c'est-à-dire si il y a une version plus récente de l’application publiée sur le serveur hébergeant l’application.

Nous allons voir  dans cet article comment mettre en ouvre cette technologie au sein d’une simple application Windows.

2.          Mise en Oeuvre

2.1.                        Configuration de publication

Créez tout d’abord une simple application Windows et ajoutez y dessus un simple bouton. Allez ensuite dans les propriétés de votre projet et sélectionnez la nouvelle section « Publish » :

Cette section « Publish » qui n’était pas présente dans les anciennes versions de Visual Studio .NET va vous permettre de configurer la publication « ClickOnce » et la mise à jour de votre application.  Vous allez donc pouvoir à partir de cette fenêtre définir le point de publication (ici dans notre exemple http://localhost/DemoClickOnce) : le point de publication peut être un lien http, ftp ou une simple adresse vers un répertoire.

En cliquant sur « Applications Updates », vous allez pouvoir définir quand la vérification de mise à jour va se lancer sur votre application windows :

Dans la copie d’écran ci-dessus, vous pouvez voir que la vérification de mise à jour va s’effectuer à chaque lancement de l’application.

2.2.                        Attribuer un numéro de version à votre application

Avant de lancer la publication de votre application, vous devez attribuer un numéro de version à votre application Windows. Pour cela allez dans le fichier AssemblyInfo.cs et modifiez l’atttribut « AssemblyVersion ». Par défaut, le numéro de version est à « 1.0. * » :

[assembly: AssemblyVersion("1.0.*")]

Vous pouvez aussi laisser la valeur par défaut.

2.3.                        Publication de l’application

Pour publier votre application, il vous suffit d’aller dans le menu contextuel de votre projet et sélectionner « Publish Project » :

Un assistant va alors vous demander ou vous voulez le publier :

Une fois votre application publiée, Visual Studio va vous ouvrir une page avec l’adresse de publication : l’utilisateur n’aura ensuite qu’a cliquer sur le lien se trouvant sur la page pour installer l’application :

Une fois installé votre application se trouvera dans le menu démarrer :

2.4.                        Mise à jour de l’application

Pour mettre à jour votre application, c’est très simple. Modifiez tout d’abord votre application Windows et ensuite changez le numéro de version en mettant un numéro de version supérieur à la version précédente. Pour notre exemple, nous allons donc mettre dans le fichier « AssemblyInfo.cs » :

[assembly: AssemblyVersion("1.1.*")]

Vous pouvez ensuite publier votre application. C’est tout ! Ensuite dès que le client lancera l’application, un message lui indiquera qu’il peut télécharger une version supérieure :

3.          Concepts avancés

3.1.                        Gestion des permissions

Lorsque vous publiez votre application, celle-ci n’a que des droits restreints car l’application est soit dans la zone « Local Intranet » ou « Internet ». Comme vous pouvez le voir ci-dessous, la zone « Local Intranet ne va pas avoir accès a l’assembly « File IO » :

Vous ne pourrez donc pas faire appel aux classes se trouvant dans le namespace « System.IO » par exemple. Pour changer la zone de votre application et ainsi avoir des droits sur l’assemby « File IO », allez dans les propriétés de votre projet puis dans la partie Security. Sélectionnez ensuite la zone « Trusted » :

Incrémentez ensuite le numéro de version de votre application et republier l’application. Pour tester si la modification a bien été prise en compte, vous pouvez ajouter le code suivant lorsque la form sera chargé :

MessageBox.Show(System.IO.Directory.GetCurrentDirectory());

Ce code va vous afficher la répertoire où se trouve votre application et pourra fonctionner seulement si le fichier de déploiement à des droits sur FileIO.

3.2.                        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.DeploymentFramework.dll » et dans le code de votre formulaire Windows, ajoutez le namespace « System.DeploymentFramework » via un simple « using ».

 Puis dans l’événement qui sera appelé lors du click sur le bouton, ajoutez le code suivant :

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 cliquer sur le bouton de votre application, si une version supérieure est disponible, le message suivant s’affichera :

?>

posted on mercredi 7 janvier 2004 05:13

Feedback

# re: Présentation ClickOnce 07/01/2004 05:38 Vlad
Bon le ?> veut par partir même avec le Word Cleaner ! Tant pis c'est pas grave comme les article ne sont pas dans le feed RSS.

# Article sur ClickOnce 07/01/2004 06:13 Vlad's Blog


# MSDNTV sur ClickOnce 10/01/2004 10:03 Vlad's Blog


# re: Présentation ClickOnce (Version Alpha) 07/07/2005 14:56 nina
Bonjour,

Je suis sur la version Beta, je ne trouve pas la référence l’assembly « System.DeploymentFramework.dll » .

Post Feedback

Title:
Name:
Url:
Comments: 
Enter the code you see: