Developpez.com

Plus de 2 000 forums
et jusqu'à 5 000 nouveaux messages par jour

Cours VB.NET

Image non disponible


précédentsommairesuivant

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':

Image non disponible

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:

 
Sélectionnez

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 &#184; Polytel 2006")> 

<Assembly: AssemblyTrademark("")> 

<Assembly: ComVisible(False)>

'Le GUID suivant est pour l'ID de la typelib si ce projet est expos&#8218; &#8230; COM

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

' Les informations de version pour un assembly se composent des quatre valeurs suivantes&#255;:

'

' Version principale

' Version secondaire 

' Num&#8218;ro de build

' R&#8218;vision

'

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

' en utilisant '*', comme indiqu&#8218; ci-dessous&#255;:

' <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:

 
Sélectionnez

<?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:

 
Sélectionnez

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

Image non disponible

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.

Image non disponible

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

Image non disponible

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

Image non disponible

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

Image non disponible

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

Image non disponible

- Puis cliquez sur le bouton 'Terminer'.

Quand tout est terminé, cela ouvre une fenêtre montrant le contenu du répertoire \publish:

Image non disponible

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

Image non disponible

Activer la Sécurité:

Onglet sécurité, activer les paramètres de sécurité.

Image non disponible

Onglet publier:

Image non disponible

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.

Image non disponible

Au composant requis

Image non disponible

Au 'mise à jour':

Image non disponible

Aux options de publication:

Image non disponible

On peut ensuite utiliser les boutons qui sont en bas:

Bouton 'Assistant de publication' et 'Publier maintenant'.

Image non disponible

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

Image non disponible

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.

Image non disponible

Puis une fenêtre permet d'installer le programme.

Image non disponible

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:

 
Sélectionnez

http://www.microsoft.com/downloads/details.aspx?familyid=87951cb9-5aeb-4f46-9bf0-2b3e3664be77&displaylang=en		

101 exemples de programme Vb 2005: une autre mine:

http://msdn.microsoft.com/fr-fr/vbasic/ms789075.aspx

101 exemples de programme Vb 2008:

http://code.msdn.microsoft.com/vbsamples


précédentsommairesuivant

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

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.