Cours VB.NETDate de mise à jour : 05/12/2010
XIV. Diffuser le programme
XIV-A. Assembly
XIV-A-1. Assembly : définition, composition
XIV-A-2. Les propriétés de l'assembly
XIV-A-3. Le manifeste
XIV-B. Distribuer l'application
XIV-B-1. Introduction
XIV-B-2. Avant de 'Publier'
XIV-B-3. Comment installer simplement un programme chez l'utilisateur ?
XIV-B-4. Créer un programme d'installation classique en VB 2003 (de type Windows Installer)
XIV-B-5. Créer un programme d'installation 'ClickOnce' en VB 2005
XIV-B-6. Autres installateurs:
XIV-C. Exemples de petites applications par Microsoft
XIV. Diffuser le programme
XIV-A. Assembly
Avant VB.Net, on enregistrait les références des programmes, des dll.. dans le registre, l'installateur enregistrait le nom et l'emplacement du fichier .exe ou de la Dll; c'était une belle pagaille:
quand on installait 2 dll différentes de même nom.
quand il y avait plusieurs versions d'une même dll.
quand on déplaçait un programme!!
quand on mettait à jour une dll qui ne respectait pas la compatibilité ascendante.
Maintenant cela ne se fait plus; en VB.Net on utilise les Assembly.
XIV-A-1. Assembly : définition, composition
Un Assembly est une unité de déploiement indivisible.
Il se caractérise par son identité (propriétés de l'assembly)
- un nom
- une version
- un identificateur de culture
- une clé publique
Il contient:
la liste de l'ensemble des fichiers (exe, dll, données, images, ressources)
les méta données (informations descriptives des Types et Classes publiques)
L'énumération des autres Assembly dont l'application dépend et leurs dépendances.
l'ensemble des autorisations requises pour que l'assembly fonctionne correctement.
Ces informations sont utilisées au moment de l'exécution pour résoudre les références, appliquer la stratégie de liaison des versions et valider l'intégrité des assemblys chargés.
Toutes ses informations sont stockées dans le "manifeste" de l'Assembly.
En conclusion:
Pour les installations de programme , mises à jour, utilisation de composants propres au programme ou partagés avec d'autres programmes; pour gérer les versions, éviter les problèmes de conflit de composants, VB.Net utilise donc les assembly (ou assemblage).
XIV-A-2. Les propriétés de l'assembly
Voir les propriétés de l'Assembly :
Pour cela ouvrir les propriétés du projet (cliquer sur MyProjet dans l'explorateur de solution ou passer par le menu Projet->Propriétés de..)
Dans l'onglet Application cliquer sur le bouton 'Informations de l'assembly':
On a accès au titre, à la description, à la société, au produit, au copyright, à la marque, à la version de l'assembly, à la version du fichier, au GUID, à la langue.
On peut aussi le voir en XML: dans l'explorateur de solution, double-cliquer sur Assemblyinfo.vb, la fenêtre principale s'ouvre permettant d'avoir accès à certaines données:
Imports System
Imports System. Reflection
Imports System. Runtime . InteropServices
< Assembly: AssemblyTitle (" Bonjour " )>
< Assembly: AssemblyDescription (" " )>
< Assembly: AssemblyCompany (" Polytel " )>
< Assembly: AssemblyProduct (" Bonjour " )>
< Assembly: AssemblyCopyright (" Copyright ¸ Polytel 2006 " )>
< Assembly: AssemblyTrademark (" " )>
< Assembly: ComVisible (False )>
< Assembly: Guid (" 9a8cb33c-3392-44a0-a86d-c7164dfa91c1 " )>
< Assembly: AssemblyVersion (" 1.0.0.0 " )>
< Assembly: AssemblyFileVersion (" 1.0.0.0 " )>
|
XIV-A-3. Le manifeste
Toutes les informations de l'assembly sont stockées dans le "manifeste".
Le manifeste qui est un fichier en XML se trouve dans:
myapplication\myapplication\bin\debug\myapplication.publish\myapplication_1_0_0_0\myapplivation.exe.manifest
myapplication\myapplication\publish\myapplication_1_0_0_0\myapplivation.exe.manifest
Pour info, voici un exemple de contenu:
< ?xml version= " 1.0 " encoding= " utf-8 " ?>
< asmv1:assembly xsi:schemaLocation= " urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd " manifestVersion= " 1.0 "
xmlns :dsig= " http://www.w3.org/2000/09/xmldsig# " xmlns= " urn:schemas-microsoft-com:asm.v2 "
xmlns :asmv1= " urn:schemas-microsoft-com:asm.v1 " xmlns:asmv2= " urn:schemas-microsoft-com:asm.v2 "
xmlns :xsi= " http://www.w3.org/2001/XMLSchema-instance " >
< asmv1:assemblyIdentity name= " myapplication.exe " version= " 1.0.0.0 " publicKeyToken= " 612c3b94c96b9edf "
language= " neutral " processorArchitecture= " msil " type= " win32 " / >
< application / >
< entryPoint>
< assemblyIdentity name= " myapplication " version= " 1.0.0.0 " language= " neutral " processorArchitecture= " msil " / >
< commandLine file= " myapplication.exe " parameters= " " / >
< / entryPoint>
< trustInfo>
< security>
< applicationRequestMinimum>
< PermissionSet Unrestricted= " true " ID= " Custom " SameSite= " site " / >
< defaultAssemblyRequest permissionSetReference= " Custom " / >
< / applicationRequestMinimum>
< / security>
< / trustInfo>
< dependency>
< dependentOS>
< osVersionInfo>
< os majorVersion= " 4 " minorVersion= " 10 " buildNumber= " 0 " servicePackMajor= " 0 " / >
< / osVersionInfo>
< / dependentOS>
< / dependency>
< dependency>
< dependentAssembly dependencyType= " preRequisite " allowDelayedBinding= " true " >
< assemblyIdentity name= " Microsoft.Windows.CommonLanguageRuntime " version= " 2.0.50727.0 " / >
< / dependentAssembly>
< / dependency>
< dependency>
< dependentAssembly dependencyType= " install " allowDelayedBinding= " true " codebase= " myapplication.exe " size= " 28672 " >
< assemblyIdentity name= " myapplication " version= " 1.0.0.0 " language= " neutral " processorArchitecture= " msil " / >
< hash>
< dsig:Transforms>
< dsig:Transform Algorithm= " urn:schemas-microsoft-com:HashTransforms.Identity " / >
< / dsig:Transforms>
< dsig:DigestMethod Algorithm= " http://www.w3.org/2000/09/xmldsig#sha1 " / >
< dsig:DigestValue> IK0J8Ge5ABv5RfyMrgdRoMoy/ Gc= < / dsig:DigestValue>
< / hash>
< / dependentAssembly>
< / dependency>
< publisherIdentity name= " CN=CABINET\Philippe " issuerKeyHash= " 6d35a155f760c5d6ce1866b24dc5b27e833af918 " / >
< Signature Id= " StrongNameSignature " xmlns= " http://www.w3.org/2000/09/xmldsig# " > < SignedInfo> < CanonicalizationMethod
. . . . .
. . . . .
|
Vous n'avez pas à l'ouvrir et à le modifier.
Signature d'un Assembly:
Article par webman sur developpez.com+++:http://webman.developpez.com/articles/dotnet/assemblysigning/
XIV-B. Distribuer l'application
Comment distribuer une application VB.NET avec les outils Microsoft?
Il faut la "déployer".
Introduction.
- Introduction
- Avant de publier
- Installation simple
- Exemple Windows Installer en VB 2003
- Exemple ClickOnce en VB 2005
- Autres programmes d'installation
XIV-B-1. Introduction
Microsoft propose 2 modes d'installation des logiciels.
- le déploiement avec un programme d'installation traditionnel à l'aide de la technologie Windows Installer.
Avec le déploiement Windows Installer, vous empaquetez l'application dans un fichier setup.exe et distribuez ce fichier aux utilisateurs ; ceux-ci exécutent le fichier Setup.exe pour installer l'application.
Les fichiers du programme d'installation peuvent être distribués sur des disquettes ou des CD-ROM, ou peuvent être placés sur un lecteur réseau pour une installation sur un réseau.
Pour déployer une application, vous créez d'abord un projet d'installation et définissez les propriétés du projet.
Ce mode de déploiement est disponible en VB 2003 (c'est le seul d'ailleurs en VB 2003) en VB 2005 et en VB 2008 (sauf pour la version Express).
Voir ci dessous un exemple en VB 2003.
- La publication d'une application à l'aide de la technologie ClickOnce
Avec le déploiement ClickOnce, c'est très simple vous publiez l'application à un emplacement centralisé et l'utilisateur l'installe ou l'exécute à partir de cet emplacement.
Les applications déployées avec ClickOnce se mettent à jour automatiquement et représentent le meilleur choix pour les applications exigeant des modifications fréquentes.
Vous utilisez l'Assistant Publication pour empaqueter votre application et la publier sur un site Web ou un partage de fichiers réseau ; l'utilisateur installe et lance directement l'application à partir de cet emplacement en une seule étape.
Ce mode de déploiement est disponible en VB 2005 et VB 2008 (c'est le seul dans la version Express).
Ce type d'installation convient bien pour créer des installations à partir d'Internet.
Voir ci dessous un exemple en VB 2005.
XIV-B-2. Avant de 'Publier'
ATTENTION:
Avant de publier votre programme, assurez-vous que vous l'avez testé et qu'il s'exécute sans erreur. Créer un fichier d'aide.
On peut choisir le mode Release ou le mode Debug.
En VB 2003, en haut de la fenêtre de l'IDE il y a une liste déroulante elle contient:
Release. (à utiliser pour générer la version à distribuer)
Debug (à utiliser pour générer une version à tester)
En VB 2005 et VB 2010, si vous choisissez les paramètres de développement Visual Basic, l'outil qui permet de choisir entre la configuration Debug et Release n'apparaît pas dans la barre d'outils. Visual Studio choisit automatiquement la configuration Debug lorsque vous cliquez sur Démarrer dans le menu Débogueur et la configuration Release lorsque vous utilisez le menu Générer
On peut aussi utiliser une constante nommé DEBUG qui aura la valeur True si on est en mode Debug.
Cela permet d'écrire:
#If Debug Then
Stop
#End If
|
Ici Stop se produira uniquement si on est en mode Debug; en mode Release, il n'y aura pas d'arrêt.
Puis, il faut générer en utilisant le Menu Générer-> Générer la Solution.
Le programme exécutable ainsi crée se trouve dans le répertoire \bin.
XIV-B-3. Comment installer simplement un programme chez l'utilisateur ?
S'il s'agit d'un programme exe simple isolé, sans dll ou avec des dll locales non partagées par d'autres programmes: on peut l'installer 'à la main'.
- Il faut installer le Framework.NET sur l'ordinateur de destination:
- Copier le répertoire \bin contenant l'exécutable (et éventuellement les fichiers de données et les dll) dans un répertoire destination.(Avec XCopy ou avec l'exploreur); On peut aussi le mettre sur un CD puis à partir du CD copier dans un répertoire sur un autre ordinateur.
- Pour utiliser le programme, l'utilisateur lance l'exécutable.
On peut créer un raccourci permettant de lancer le programme: dans l'explorateur, cliquer sur le fichier.exe, puis click droit, cela ouvre un menu, cliquer sur 'Créer un raccourci'. Ensuite ce raccourci peut être déplacé sur le bureau par drag and drop.
Cette méthode ne prend pas en compte les composants, dll partagées avec d'autres applications. Il faut plutôt créer un programme d'installation qui est nécessaire dans les autres cas.
XIV-B-4. Créer un programme d'installation classique en VB 2003 (de type Windows Installer)
Le déploiement avec un programme d'installation traditionnel peut être effectué à l'aide de la technologie Windows Installer. Avec le déploiement Windows Installer, vous empaquetez l'application dans un fichier setup.exe et distribuez ce fichier aux utilisateurs ; ceux-ci exécutent le fichier Setup.exe pour installer l'application.
Pour cela, vous devez ajoutez un projet d'installation à votre solution et définir les propriétés du projet de déploiement afin de créer un fichier d'installation distribué aux utilisateurs . Les fichiers du programme d'installation peuvent être distribués sur des supports traditionnels, comme les disquettes ou les CD-ROM, ou peuvent être placés sur un lecteur réseau pour une installation sur un réseau.
Pour un déploiement via des supports traditionnels, vous copiez les fichiers à partir de l'emplacement de génération vers une disquette ou autre support.
L'utilisateur lance Setup.exe qui est sur un cd d'installation et ce programme installe le logiciel.
Voyons cela dans VB 2003:
Pour cela il faut créer un projet de configuration et déploiement, en modifier certaines propriétés puis le générer.
Menu Fichiers->Ajouter un projet->Nouveau Projet-> Cliquez dans la liste sur 'Projet de configuration et de déploiement.' puis sur l'icône 'Assistant de configuration'.
Il faut vérifier en bas de la fenêtre 'Ajouter un nouveau projet' le chemin.
Suivez les divers écrans en vous rappelant que vous utilisez une application Windows en sortie principale, n'oubliez pas de rajouter si nécessaire certains fichiers (les fichiers de données nécessaires ).
Après le bouton 'Terminez', il est ajouté dans la fenêtre de l'explorateur de solution une ligne nommé par défaut 'Setup1' correspondant au projet de l'installateur. Il est crée un onglet 'Système de fichiers' dans la fenêtre principale.
Vous venez de créer votre projet de configuration et déploiement, vous pouvez maintenant le modifier.
Le fait de cliquer sur le 'dossier d'application' dans l'explorateur de solution affiche dans la fenêtre de propriétés, les propriétés de l'installation.
La propriété DefaultLocation donne par exemple l'emplacement, le répertoire d'installation. Il y a bien d'autres propriétés permettant de personnaliser votre installateur (Auteur, nom de l'entreprise, Version...)
Enfin quand on clique sur Setup1 dans l'explorateur de solutions, il apparaît des boutons donnant accès à des éditeurs de registre, de d'interface de l'installateur, de condition de lancement..
Si on clique sur le 3eme bouton on ouvre l'éditeur d'interface qui donne accès au déroulement de l'installateur. En cliquant sur la première fenêtre ('Bienvenue') on a accès aux propriétés de cette fenêtre: texte, image..
Pour créer effectivement l'installateur il faudra enregistrer puis utiliser le Menu Générer-> Générer Setup1.
Un répertoire nommé dans notre exemple 'SeptUp1' est crée; il contient
Setup.exe
Setup1.msi
Setup.ini
il suffit de mettre ces fichiers sur un cd et de le donner à l'utilisateur final qui installera votre logiciel en lançant Setup.exe.
Le logiciel d'installation vérifie si le FrameWork est bien installé.
XIV-B-5. Créer un programme d'installation 'ClickOnce' en VB 2005
Avec le déploiement ClickOnce, vous publiez l'application à un emplacement centralisé et l'utilisateur l'installe ou l'exécute à partir de cet emplacement. ClickOnce se base sur le protocole HTTP pour effectuer les installations ou les mises à jour.
L'emplacement centralisé peut-être une page WEB.
Les applications déployées avec ClickOnce se mettent à jour automatiquement et représentent le meilleur choix pour les applications exigeant des modifications fréquentes.
Avec ClickOnce, vous utilisez l'Assistant Publication pour empaqueter votre application et la publier sur un site Web ou un partage de fichiers réseau ; l'utilisateur installe et lance directement l'application à partir de cet emplacement en une seule étape.
Exemple d'installation à partir d'un CD-ROM sans mise à jour:
- Lancer l'assistant de publication:
Une fois que vous êtes prêt à le publier( code vérifié, génération effectuée), vous pouvez lancer l'Assistant Publication en sélectionnant la commande Publier dans le menu Générer.
L'Assistant Publication comprend trois étapes :
- La première étape consiste à sélectionner l'emplacement où vous souhaitez placer le programme d'installation et tous les fichiers associés. Si vous publiez votre programme sur un CD-ROM, sélectionnez un dossier sur votre disque local. (Vous graverez ensuite ce dossier sur le CD-ROM).
(publish\ crée un répertoire sous les sources (au même niveau que le répertoire bin )
- La deuxième étape consiste à spécifier la manière dont les utilisateurs installeront votre programme ; dans le cas présent, à partir d'un CD-ROM.
- L'étape finale implique le fait de spécifier si votre programme vérifie ou non automatiquement à chaque démarrage la présence d'une version plus récente.
- Puis cliquez sur le bouton 'Terminer'.
Quand tout est terminé, cela ouvre une fenêtre montrant le contenu du répertoire \publish:
Il y a
Setup.exe
listgénéric.application
listgénéric_1_0_0_0.application
et un répertoire 'listgénéric_1_0_0_0'
listgénéric.exe.deploy
listgénéric.exe.manifest
Exemple d'installation à partir d'un Site WEB avec mise à jour automatique:
L''Assistant Publication' s'exécute.
Dans la page Où souhaitez-vous publier l'application ? entrez l'URL du site Web où vous souhaitez publier votre programme. Par exemple, http://www.mysite.com/myprogram.
Attention
Pour publier votre programme sur un serveur Web, ce dernier doit exécuter IIS (Internet Information Services), les extensions FrontPage doivent être installées, et vous devez disposer de privilèges d'administration dans IIS.
Dans la page suivante de l'Assistant.
Sur la page L'application sera-t-elle disponible hors connexion ?, sélectionnez Oui, cette application est disponible en ligne ou hors connexion, la valeur par défaut.
L'application peut être accessible que de façon online (retélechargée à chaque fois) ou de façon offline, téléchargée, installée et accessible via le menu Démarrer
Cliquez sur Terminer pour publier le programme.
Le programme est publié sur le site Web spécifié, et une page HTML est créée.
Sur un autre ordinateur, ouvrez Internet Explorer, naviguez jusqu'à l'URL saisie auparavant, puis cliquez sur le lien Installer pour installer le programme.
Configuration avancée du projet de déploiement.
Nous allons modifier plein de choses avant de déployer:
Veuillez ouvrir le panneau des propriétés de votre projet (menu Projet > Propriétés de nomdeprogramme ou double-cliquer sur MyProjet dans la fenêtre d'explorateur de solution) .
Signer le projet:
Cliquez sur l'onglet signature puis sur la case 'Signer les manifestes CliclOnce'.
Activer la Sécurité:
Onglet sécurité, activer les paramètres de sécurité.
Onglet publier:
Pour indiquer l'emplacement de la publication, si l'application est disponible en ligne ou hors connexion (installée).
Si on coche la case incrémenter.. cela incrémente automatiquement les versions.
4 boutons donnent accès :
Au fichier d'application.
Au composant requis
Au 'mise à jour':
Aux options de publication:
On peut ensuite utiliser les boutons qui sont en bas:
Bouton 'Assistant de publication' et 'Publier maintenant'.
Ajouter enlever des fichiers.
- Comment ajouter les fichiers publiés via ClickOnce:
Tous les fichiers du projet qui ne contiennent pas de code sont déployés avec l'application.
Il suffit donc d'inclure dans le projet des fichiers de données.
Comment inclure des fichiers?
Il suffit de glisser les fichiers que nous voulons ajoutons dans le dossier "Bin" dans l'explorateur de solution; ensuite les fichiers de type image ou autre seront installés sur le poste du client et pour nous développeurs, il suffira d'indiquer leurs chemins de cette manière : "Bin\nomDuFichier.extension".
Les fichiers d'une application ClickOnce sont ensuite gérés dans la boîte de dialogue Fichiers d'application, accessible à partir de la page Publier du Concepteur de projets. Dans la fenêtre de l'explorateur de solutions à droite, double-cliquer sur 'MyProjet' puis sur l'onglet Publier enfin sur le bouton 'Fichiers d'application'.
Exclure un fichier
Dans la boîte de dialogue Fichiers d'application, sélectionnez le fichier que vous souhaitez exclure.
Dans le champ État de la publication, sélectionnez Exclure dans la liste déroulante.
Fichier de données:
Dans le champ État de la publication, sélectionnez Fichier de données dans la liste déroulante.
Composant requis:
Dans la boîte de dialogue Fichiers d'application, sélectionnez l'assembly d'application (fichier .dll) que vous souhaitez marquer comme composant requis. Notez que votre application doit posséder une référence à l'assembly d'application pour figurer dans la liste.
Dans le champ État de la publication, sélectionnez Composant requis dans la liste déroulante.
Comment cela se passe chez celui qui installe?
Par exemple il faut installer le programme chiffreromain, il a un CD avec les fichiers
Setup.exe
chiffreromain.application
chiffreromain_1_0_0_0.application
et un répertoire 'chiffreromain_1_0_0_0'
chiffreromain.exe.deploy
chiffreromain..exe.manifest
Pour installer , on double clique sur Setup.exe.
Si le Framework n'est pas installé et s'il y a une connexion Internet, la fenêtre suivante s'ouvre et permet de télécharger et d'installer le Framework.
Puis une fenêtre permet d'installer le programme.
Pour lancer le programme, pas de problème , l'installateur ajoute le nom du programme dans le menu 'Démarrer' et aussi dans le menu programme, menu 'nom de l'éditeur' puis chiffreromain.
Pour désinstaller, pas de problème, dans menu 'Démarrer', "Paramètres", "Ajouter et supprimer programmes", le programme est répertorié et un bouton permet de le désinstaller.
Mais, ou s'installe le programme?
C:\Documents and Settings\NomUtilisateur\LocalSettings\Apps\NomSociété\JHBVHR0G.E57\ZBOQP5EG.EYY\chif..tion_6625898959f0f00b_0001.0000_c9deafec99019f28
On remarque que l'exécutable n'est plus dans un répertoire de 'Programs Files' mais dans les documents , le Local Setting, sous le nom de la société (celui qui est dans l'assembly), sous le nom du programme mais aussi sous le numéro de version...
XIV-B-6. Autres installateurs:
Il existe des installateurs gratuit non Microsoft.
DreamShield est un outil de publication puissant qui permet de déployer les applications utilisant le Microsoft .NET Framework 2.0+ sur les systèmes allant de Windows 2000 à Windows Seven.
XIV-C. Exemples de petites applications par Microsoft
101 exemples de programme Vb 2003: une mine:
|
http://www.microsoft.com/downloads/details.aspx?familyid=87951cb9-5aeb-4f46-9bf0-2b3e3664be77&displaylang=en
|
101 exemples de programme Vb 2005: une autre mine:
101 exemples de programme Vb 2008:
Les sources présentés sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright © .
Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts.
Cette page est déposée à la SACD.
|