Accueil
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi Eclipse MS-Office SQL & SGBD Oracle  4D  Business Intelligence

Cours VB.NET

Date 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

' Les informations g‚n‚rales relatives  un assembly d‚pendent de 

' l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations

' associ‚es  un assembly.

' V‚rifiez les valeurs des attributs de l'assembly

<Assembly: AssemblyTitle("Bonjour")> 

<Assembly: AssemblyDescription("")> 

<Assembly: AssemblyCompany("Polytel")> 

<Assembly: AssemblyProduct("Bonjour")> 

<Assembly: AssemblyCopyright("Copyright ¸ Polytel 2006")> 

<Assembly: AssemblyTrademark("")> 

<Assembly: ComVisible(False)>

'Le GUID suivant est pour l'ID de la typelib si ce projet est expos‚  COM

<Assembly: Guid("9a8cb33c-3392-44a0-a86d-c7164dfa91c1")> 

' Les informations de version pour un assembly se composent des quatre valeurs suivantesÿ:

'

' Version principale

' Version secondaire 

' Num‚ro de build

' R‚vision

'

' Vous pouvez sp‚cifier toutes les valeurs ou indiquer les num‚ros de build et de r‚vision par d‚faut 

' en utilisant '*', comme indiqu‚ ci-dessousÿ:

' <Assembly: AssemblyVersion("1.0.*")> 

<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.

Exemple : DreamShiel:http://dreamshield.developpez.com/

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.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com