Déploiement d'une application avec Flexnet Connect

Image non disponible    Image non disponible    Solution Architect .NET


Image non disponible

Je vous propose dans cet article de voir comment déployer automatiquement la mise à jour de votre application, par exemple dans le cadre d'un parc informatique.

N'hésitez pas à commenter cet article ! Commentez Donner une note à l'article (5)

Article lu   fois.

L'auteur

Site personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

1. Introduction

Cet article se présente sous la forme d'un tutoriel basé sur l'utilisation de 2 outils commerciaux de Macrovision

  • FlexNet Connect
  • InstallShield 12

Ce tutoriel étant suffisamment long, je ne parlerai pas de la création du setup de votre application que vous devrez avoir préalablement fait avec InstallShield. Cette création est très simple, un assistant très clair vous permet de packager votre application.
Dans ce tutoriel, j'ai packagé mon application .NET écrite en C# en utilisant un projet « InstallScript » qui offre le maximum de fonctionnalités.
Je vais plutôt me concentrer sur la partie plus complexe qui consiste à créer une nouvelle release et à paramétrer FlexNet Connect pour en tenir compte afin de proposer la mise à jour à vos applications.

2. Présentation des outils

2.a. InstallShield

InstallShield est un outil qui vous permet de packager vos applications.
C'est-à-dire qu'elle vous permet de créer un programme d'installation (setup.exe) qui va vous permettre de déployer votre application sur vos postes clients tout en gérant des processus complexes comme l'écriture dans la base de registre, la personnalisation de l'installation par l'utilisateur, etc.
InstallShield fournit principalement 2 types d'installateurs : « Basic MSI » et « InstallScript ». Ce dernier offrant un maximum de possibilité.
Si vous n'avez pas InstallShield, vous pouvez télécharger la dernière version ici :
http://macrovision.com/downloads/downloads_5850.htm?link_id=relatedLinks

2.b. FlexNet Connect

FlexNet Connect est un logiciel qui se présente sous la forme d'un serveur qui permet de déployer automatiquement des mises à jour sur vos postes clients.

L'idée est simple.
Le serveur contient des informations sur vos applications et de leurs mises à jour.
L'idée est de permettre à une application de se connecter à distance sur ce serveur et de demander s'il existe une mise à jour.
Si c'est le cas, le serveur lui donne alors le chemin d'accès de la mise à jour.
Le client télécharge donc cette mise à jour et l'exécute.
Ce qui est intéressant, c'est que soit vous installez le serveur dans votre intranet, soit vous utilisez directement le serveur hébergé par InstallShield qui fournit d'ailleurs un accès de 30 jours pour tester leurs services.
C'est exactement ce que nous allons voir dans ce tutoriel.

Rendez-vous sur cette adresse pour créer un compte sur leur serveur: http://macrovision.com/downloads/downloads_5426.htm?link_id=relatedLinks

Cliquez sur le lien « register » qui se trouve sous " Use the link below to create a new evaluation account."
Remplissez le formulaire pour créer un compte.
Ensuite, après réception de votre login/mot de passe, vous aurez accès au serveur http://services.installshield.com

3. Enregistrement d'une application

Une fois que vous avez créé votre première release de votre application à l'aide d'InstallShield, il faut enregistrer l'application sur le serveur d'update.
Connectez vous donc sur le serveur:
http://services.installshield.com

Voici la page de connexion:

Image non disponible

Saisissez votre login/mot de passe.
Vous accédez à la page d'accueil :

Image non disponible

Cliquez sur « Products » :

Image non disponible

Cliquez maintenant sur NEW pour ajouter votre application :

Image non disponible

Pour remplir les informations de cette page, utilisez les informations qui se trouvent dans InstallShield.
Lancez donc InstallShield et rendez vous sur l'onglet « Installation designer ».
Cliquez sur « Installation information », « General information » puis « Product Properties ».
Faites un copier/coller des informations requises.
Le champ « product Code » correspond au « Product GUID » d'InstallShield.
Il s'agit de l'identifiant de votre application.

Voici une capture d'écran d'InstallShield :

Image non disponible

D'autres informations (Product Signature, Product Lock) se trouvent à un autre endroit, cliquez sur « Update Service » sur Install Shield pour y accéder et faire un copier/coller:

Image non disponible

Une fois le formulaire rempli sur le serveur, cliquez sur NEXT :

Image non disponible

La version demandée doit être EXACTEMENT saisie comme elle apparaît sous InstallShield dans la vue « Product Properties » ici:

Image non disponible

Cliquez à nouveau sur NEXT

Image non disponible

C'est fini vous pouvez clique sur Save, l'application a bien été enregistrée :

Image non disponible

4. Création d'une release

Maintenant nous supposons que votre application a été installée sur un PC, et que vous avez créé une nouvelle release (R2) avec par exemple Visual Studio.

Je vais vous montrer d'abord comment packager cette release avec InstallShield, puis comment l'enregistrer sur le serveur.

Lancez InstallShield, ouvrez le projet que vous avez vous même créé lors du packaging de la première release, allez dans l'onglet « Installation Designer », ensuite cliquez dans le menu de gauche avec le bouton droit sur « Media » « Relase », puis « New release » et « Network Image » :

Image non disponible

Une nouvelle release est créée. Cliquez avec le bouton droit sur « Release 2 » et « Release wizard » :

Image non disponible

Cliquez 10 fois sur Next jusqu'à tomber sur la configuration de l'update :

Image non disponible

Vous pouvez cocher soit « Full » soit « Differential ».

« Full » réinstallera entièrement l'application, alors que « Differential » fera une comparaison, et n'installera que les fichiers modifiés/ajoutés.

Cliquez sur « Import ».

Image non disponible

Cliquez sur le dossier jaune pour sélectionner l'emplacement du fichier data1.hdr qui a été créé lors de la première release (vous faites un update de la première release. Ce fichier lui appartient, et permettra de comparer les fichiers entre la première et la nouvelle release).

Cliquez sur OK.

Image non disponible

Important, vérifiez le numéro de version. Il doit s'agir de la première release (en tout cas de la release n-1)

Cliquez sur Next jusqu'à la fin du wizard, puis cliquez sur "finish" :

Image non disponible

Vous pouvez changer certains paramètres.

"Single Exe File Name", cet attribut est vide. Mettez le nom de l'exécutable qui doit être créé lors du packaging afin de contenir la mise à jour.
Exemple: Setup.exe.
C'est le fichier qui sera téléchargé et exécuté sur le poste client.

"Copy to folder", renseignez le chemin du répertoire où le fichier "setup.exe" doit être copié par InstallShield. Il s'agit de l'emplacement où le poste client pourra télécharger la mise à jour sur votre intranet (ou internet).

Maintenant il faut indiquer le changement de version de votre application.

Allez sur la vue « Product Properties » pour changer le numéro et mettre par exemple 2.00.0000 :

Image non disponible

Pensez à builder la nouvelle release avec le nouveau numéro de version.

Il faut retourner dans le menu de Release, sélectionnez « Release 2 », clique droit et « Build ».

Voilà une bonne chose de faite.

Vous avez donc maintenant 2 packages:

  • Release 1 : votre application initiale
  • Release 2 : un update de votre application.

Il faut maintenant vous connecter sur le serveur pour enregistrer cet update et permettre à toutes vos applications d'être notifiées.

Une fois connecté sur le serveur, cliquez sur le menu « Update ».

Ensuite cliquez sur « New »:

Image non disponible

Remplissez les champs comme bon vous semble (pas de contrainte).

Cliquez sur « Next » :

Image non disponible

Remplissez les champs. Ici j'ai choisi d'exposer mon update sur le serveur web de ma machine dans le cadre de ce tutoriel. Vous pouvez saisir l'adresse du serveur web de l'intranet de votre entreprise.

Cliquez sur « Next » :

Image non disponible

Sélectionnez la version du produit à mettre à jour, en l'occurrence, la version 1.

Cliquez sur « Next », cette page vous permet de restreindre les machines qui doivent avoir accès à cette mise à jour.

Cliquez sur « Next » :

Image non disponible

A vous de choisir ici votre stratégie de mise à jour.

Chaque champ est suffisamment clair.

Cliquez sur « Next » :

Image non disponible

Cliquez sur « Next » puis sur « Save »..

Pour vous assurer que cela fonctionne, installez votre application (release 1) sur votre PC.

Maintenant exécutez le programme « agent.exe » fourni par IntallShield et qui permet de mettre à jour manuellement une application (manuellement car c'est vous qui lancez ce programme):
"C:\Program Files\Common Files\InstallShield\UpdateService\agent.exe" /au{8AC7D5CB-CE0F-40A2-A551-5C3FAEF64614} /AppMenu
(remplacez le GUID par le Product GUID de votre application qui se trouve là) :

Image non disponible

Le programme va automatiquement se connecter au serveur et regarder s'il existe un update pour l'application ayant le GUID passé en paramètre. Voici ce qui va apparaître :

Image non disponible

Il vous suffit de cocher la case de la mise à jour et de cliquer sur « Install » !!:

Image non disponible

5. Mise à jour automatique

Nous venons de voir comment mettre à jour l'application « manuellement ».

L'idéal est que l'application détecte elle-même, au lancement, qu'il existe une mise à jour, et qu'elle l'a lance.

Voici un bout de code .Net à mettre par exemple dans la méthode « Load » après avoir rajouté une référence sur Interop.DWUpdateServiceLib (dans l'onglet COM) :

 
Sélectionnez

		const string  productCode = {8AC7D5CB-CE0F-40A2-A551-5C3FAEF64614}"; // own guid
		DWUpdateServiceLib.Agent  objUSAgent = null;
		objUSAgent = new DWUpdateServiceLib.Agent();
		DWUpdateServiceLib.Updates  updates = null;
		if  (objUSAgent.IsConnected() == true)
		{
			objUSAgent.Register(productCode, "1.00.0000");
			objUSAgent.AppUpdate(productCode, DWUpdateServiceLib.RunType.AppStart);
		}
			

Et voila, l'application (Release 1) indique qu'elle veut savoir s'il existe une mise à jour pour la version 1.00.0000.

Si oui alors une fenêtre va s'ouvrir pour proposer le téléchargement et l'installation de la mise à jour.

J'ai mis ici en dur le GUID et le numéro de version.

En réalité il faudra les mettre à jour avec Visual Studio et les récupérer dynamiquement avec par exemple l'attribut Application.ProductVersion pour le numéro de version.

6. Conclusion

Nous venons donc de voir comment permettre à vos applications de se mettre à jour automatiquement.
C'est un atout important si vous êtes en charge du déploiement des applications au sein de votre entreprise ou chez vos clients.

Je tiens à remercier Dut pour la relecture de ce document.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.