Distribution d'applications .NET avec DreamShield
Date de publication : 28/07/2007 , Date de mise à jour : 28/07/2007
Par
Karim Audrey LUCCIN (Espace perso)
Cet article décrit les procédures permettant de distribuer une application .NET en utilisant DreamShield
I. Présentation
II. Installation et premier lancement
III. Création du projet d'installation grâce aux assistants
III-A. Assistant de projet standard
III-B. Importation de projet Visual Studio 2005
IV. Création du projet d'installation grâce à un fichier XML et/ou l'interface
IV-A. Création du projet
IV-B. Propriétés générales de l'installeur
IV-C. Propriétés de compilation
V. Données du package
V-1. Edition des CD
V-2. Edition des archives
V-3. Edition des packets
V-4. Edition des fichiers
VI. Fonctionnalités supplémentaires
V-A. Licence et Lisez-moi
V-B. Création de raccourcis
V-C. Associer un type de fichier avec une application
VIII. Construction de l'installeur
VI-A. Compilation standard du projet
VI-B. Compilation pour un déploiement sur le WEB
VIII-C. Projet d'exemple : Installation de Notepad ( XML )
IX. Fonctionnalités avancées
VI-A. Plugins
VI-A-1. Vérifier une condition avant l'installation ( LUA )
VI-A-2. Rajouter une page personnalisée ( C# )
VI-A-3. Exécuter une action pendant l'installation d'un composant ( LUA )
VIII. Conclusion et Remerciements
I. Présentation
Suite d'
InstallWIz.Net, DreamShield
est un éditeur permettant de créer d'une manière visuelle ou à l'aide d'un fichier XML,
une installation pour un logiciel afin de le distribuer sur d'autres machines exécutant
un système d'exploitation Microsoft Windows.
Il dispose entre autre de plusieurs assistants de création de projet, tel que l'importation
d'un projet Visual Studio 2005, mais aussi la création de projets d'installations par le
biais d'un fichier au format XML.
Ce tutoriel a pour but d'exposer les différentes méthodes qui conduisent à la création d'une installation
pour votre application qui permettra à celle-ci d'être distribuée sur d'autres ordinateurs en installant
si nécessaire le .NET Framework 2.0 Redistribuable et Windows Installer 3.0.
La version utilisée dans ce toturiel de DreamShield est la version 0,8 que vous pourrez obtenir
à l'adresse suivante :
II. Installation et premier lancement
L'installation de DreamShield peut se faire à partir des trois packages d'installation disponibles.
Vous pourrez les obtenir à l'adresse cité au dessus.
L'installation de DreamShield créera des raccourcis à différents endroits, qui vous permettront de lancer l'application.
- Sur le bureau
- Dans le menu démarrer : Tous les programmes/LKSoft/DreamShield
Les sections suivantes exposeront les deux grandes méthodes qui permettent de commencer un projet
avec DreamShield.
III. Création du projet d'installation grâce aux assistants
Bien que vous puissiez créer un projet d'installation sans, DreamShield dispose
à l'heure actuelle de trois assistants qui permettent de créer rapidement
une installation fonctionnelle.
Pour pouvoir y accéder, cliquez sur le menu Fichier/Nouveau puis, dans la boite
de dialogue de création de projet, accédez à la section Projets d'installations/Windows (.NET)/Assistants de projet
III-A. Assistant de projet standard
Cet assistant propose étape par étape, de spécifier les propriétés les plus
communes de l'installation.
Aucune contrainte n'est fixée par celui-ci et vous pouvez à tout moment cliquer sur
"Terminer" pour générer le projet d'installation en utilisant les valeurs par défaut.
III-B. Importation de projet Visual Studio 2005
Cet assistant permet de créer un projet d'installation à partir d'un projet ( et pas une solution pour l'instant ) Visual Studio 2005
(ou MSBuild). Vous pouvez avec cet assistant décider d'inclure la sortie principale de votre projet ( les fichiers compilés )
et/ou les fichiers sources contenus dans le projet.
 |
Si vous utilisez toujours certains paramètres dans vos installations, tels que le texte de licence ou encore certains
composants présents par défaut, vous pouvez utiliser un fichier "Template" qu'il vous sera possible de spécifier au cours de
l'assistant d'importation.Le fichier Template sert de base à la génération du projet.
|
IV. Création du projet d'installation grâce à un fichier XML et/ou l'interface
Il vous est possible de ne pas utiliser d'assistant pour créer le projet, mais de le créer à la main
soit par l'éditeur de projet soit en utilisant un script XML.
Les sections suivantes décrirons en parallèle les étapes de création du projet grâce à un script XML et grâce à l'éditeur.
IV-A. Création du projet
Dans cette section nous allons créer un projet d'installation pour Notepad.
Pour créer un nouveau projet dans l'éditeur vous devez sélectionner dans la boite de création
de nouveau projet Projets d'installation/Windows (.NET)/Projet d'installation.
Pour créer un projet à partir d'un fichier XML vous devez utiliser l'assistant d'importation de
projet DreamShield XML. De même pour créer un fichier XML à partir d'un projet DreamShield,
ouvrez le projet avec DreamShield puis cliquez sur le menu Projet -> Exporter le projet au format XML
| Projet vide DreamShield XML |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
</DreamShieldProject>
|
IV-B. Propriétés générales de l'installeur
Dans l'éditeur, les informations générales du projet telles que le nom du produit, l'auteur ou encore le dossier par défaut d'installation,
sont disponibles à la fois dans la section
Propriétés globales et dans le fichier XML par la clef "Product".
| Propriétés globales du projet XML |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<Product>
<Name>Notepad sample</Name>
<Guid>34D877D2-A6B0-458e-B389-27C55EE61C20</Guid>
<Author>Audrey LUCCIN</Author>
<Company>Copyright (c) Audrey LUCCIN 2007</Company>
<Description>Package d'installation d'exemple pour Notepad</Description>
<Keywords>Installer, DreamShield, .NET</Keywords>
<DefaultInstallerDir>{ProgramFiles}\LKSoft\DreamShield\Samples\Notepad</DefaultInstallerDir>
<Version>1</Version>
</Product>
</DreamShieldProject>
|
Le projet doit toujours avoir un guid valide, c'est à dire qu'il doit être différent de
{00000000-0000-0000-0000-000000000000}.
Le guid est également un identifiant qui doit définir de manière unique votre application
et ce de manière universelle. Vous pouvez pour cela utiliser le bouton "Générer" de la section
Informations des propriétés globales du projet.
IV-C. Propriétés de compilation
Les propriétés de compilation définissent le dossier de sortie utilisé par le compilateur ainsi que
les fichiers à inclure pour le bootstrapper.
| Propriétés de compilation |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<Compiler>
<BuildAsMergeModule>false</BuildAsMergeModule>
<CompilerOutputDir>{PROJECTDIR}\NotepadOutput</CompilerOutputDir>
<SFXArchive createSFXArchive="true" name="Notepad sample"/>
<IncludeNativeLauncher>true</IncludeNativeLauncher>
<IncludeNativeLauncherRuntimes>false</IncludeNativeLauncherRuntimes>
</Compiler>
</DreamShieldProject>
|
| Identifiant XML |
Nom dans l'éditeur de projets |
Description |
| BuildAsMergeModule |
Créer un module partagé |
Non documenté pour l'instant - toujours false |
| CompilerOutputDir |
Dossier de sortie du compilateur |
Dossier dans lequel sera généré l'installeur |
| SFXArchive createSFXArchive |
Créer une archive auto-extractible |
Indique si le compilateur doit créer une archive auto-extractibe, utile pour les petites applications et le déploiement d'applications sur le WEB |
| SFXArchive name |
Nom de l'archive SFX |
Nom de l'application produite par la création de l'archive auto-extractible |
| IncludeNativeLauncher |
Créer un lanceur d'installation natif |
Indique si le compilateur doit créer un fichier Setup.exe natif afin de vérifier les dépendances de l'installeur ( .NET Framework 2.0 Redistribuable ) |
| IncludeNativeLauncherRuntimes |
Inclure les runtimes pour l'installation native |
Si un lanceur natif est créé, indique au compilateur d'y lier les fichiers dotnetfx.exe et WindowsInstaller***.exe afin de distribuer les runtimes nécessaires aux applications .NET si nécessaire |
V. Données du package
V-1. Edition des CD
DreamShield supporte les installations multi CD.
Lorsqu'il en aura besoin, l'installeur demandera à l'utilisateur le CD approprié et le
vérifiera avant de poursuivre l'installation.
 |
La vérification du CD n'est pas un dispositif d'anti-copie, elle permet simplement d'identifier le CD
requis par l'installeur.
|
L'installation contient toujours un CD par défaut et il n'est pas nécessaire
de le spécifier dans le fichier XML cependant il y est défini ainsi :
| CD par défaut |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<CDs>
<CD name="-Default-" title="CD par défaut" description="CD par défaut"/>
</CDs>
</DreamShieldProject>
|
Les archives utilisent elles aussi par défaut le cd "-Default-". Si vous
voulez créer une installation multi-CD, il suffit généralement de créer
une archive ( abordé dans la section suivante ) par CD. Il est également conseillé
( mais cela n'est pas nécessaire ) de créer un composant par CD et d'y spécifié par la
suite les fichiers afin que l'installeur demande un par un les CD nécessaires, sans
avoir besoin de réinsérer un CD déjà demandé.
Pour créer un nouveau CD vous devez faire un click droit sur la liste des CD puis
cliquer sur le menu Nouveau CD
V-2. Edition des archives

Les medias ou archives sont les "entités" qui contiennent les données de l'installeur telles
que les fichiers à installer. Les archives et les fichiers qu'elles contiennent sont identifiés
de manière unique par rapport à chaque package d'installation crée. En d'autres termes, même si vous
ne changez pas de projet mais que vous recompilez deux fois celui-ci, les archives des deux
installations ne seront pas interchangeables.
Les archives peuvent être intégrées ou non dans le package d'installation ( fichier .ddins situé dans un des
sous dossiers du répertoire choisis comme sortie du compilateur ).Les fichiers du media peuvent eux aussi être
intégrés ou non dans l'archive ( par défaut, ils sont contenus dans celle-ci ). Ils
peuvent également être compressés. Les compressions supportées dans la version 0,8 de DreamShield sont
les compressions LZMA, GZIP et Deflate. Bien que le SFX utilise une compression CAB, celle ci n'est pas
disponible pour les fichiers.
Grâce à DreamFromTheWeb vous pouvez indiquer au compilateur de créer des archives qui pourront se trouver
sur un serveur WEB et télécharger si nécessaire à partir de celui-ci par l'installeur. Cela réduit
de manière importante la taille du téléchargement de l'installeur.
 |
Dans le cas de l'installation de DreamShield, l'installation complète fait environ 38 Mo et le package
DreamFromTheWeb fait 1,5 Mo. Cette différence peut être utile si les données facultatives de votre installation s'élèvent
à plusieurs Méga-octets, car, celles-ci ne seront donc pas téléchargées si l'utilisateur ne le souhaite pas.
|
| Archives dans le projet XML |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<DefaultMediaName>Data</DefaultMediaName>
<Medias>
<Media name="Data" embedMediaInSetup="true" embedFilesInMedia="true" compressionMethod="LZMA" cd="-Default-" enableInstallFromTheWeb="false">
<Description>Archive par défaut</Description>
<WebUrl></WebUrl>
</Media>
</Medias>
</DreamShieldProject>
|
| Identifiant XML |
Nom dans l'éditeur de projets |
Description |
| DefaultMediaName |
Click droit sur la liste des archives + Définir comme Archive par défaut |
Archive par défaut utilisée par le compilateur |
| embedMediaInSetup |
Inclure l'archive dans le package d'installation |
Indique s'il faut imbriquer l'archive dans le fichier ddins |
| embedFilesInMedia |
Inclure les fichiers dans l'archive |
Indique s'il faut imbriquer les fichiers dans l'archive |
| compressionMethod |
Méthode de compression des fichiers de l'archive |
LZMA, GZip, Deflate ou None |
| cd |
CD de l'archive |
CD contenant l'archive |
| enableInstallFromTheWeb |
Permettre le chargement de cette archive à partir d'un serveur distant |
Indique s'il faut utiliser DreamFromTheWeb ( voir plus haut la description de DreamFromTheWeb ) |
| WebUrl |
URL du media pour l'installation à partir d'internet |
URL à partir de laquelle charger les archive d'installation, ex : http://www.monsite.com/dreamshield-packages/ |
| Description |
Description de l'archive |
Description de l'archive |
V-3. Edition des packets
Les packets ou composants sont les conteneurs logiques des données de l'installeur telles que
les fichiers à installer ou les clefs du registre.
Chaque composant doit avoir un GUID unique au sein de l'installation ( différent de {00000000-0000-0000-0000-000000000000}
sauf pour le composant racine ou Root ) mais pas forcément unique entre plusieurs installations.
| Les composants |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<MainComponent>
<Components>
<Component name="Notepad main" version="1" selectable="false" selectedByDefault="true" guid="DBD64667-2210-4965-AE1E-93C5DF10CFB2">
<Description>Composant principal pour notepad</Description>
</Component>
</Components>
</MainComponent>
</DreamShieldProject>
|
| Identifiant XML |
Nom dans l'éditeur de projets |
Description |
| MainComponent |
Composant Root |
Composant racine, parent de tous les autres. Ses propriétés sont ignorés et ne doivent donc pas être modifiées. |
| name |
Nom du composant |
Nom du composant |
| selectable |
Afficher dans la page de sélection des composants pour l'installation |
Si le composant est "selectable", alors il sera affiché dans la page de sélection des composants à installer
lors d'une installation personnalisée. Pour être visible, tous les composants parents ( à part MainComponent ) doivent
eux aussi avoir le propriété "selectable" à true. |
| selectedByDefault |
Sélectionner par défaut pour l'installation |
Indique si le composant est installé par défaut |
| Description |
Description du composant |
Description du composant |
V-4. Edition des fichiers

La page d'édition des fichiers permet de définir l'ensemble des fichiers à installer. Vous pouvez dans
n'importe quel dossier glisser à partir de l'explorateur de Windows vers l'éditeur de fichier un ensemble de
dossier et/ou fichiers à rajouter à l'installation.
En faisant un click droit sur un dossier ou sur un fichier vous pourrez accéder à ces attributs ( Caché, Système, ... )
et ses propriétés ( chemin du fichier source, ... ).
Chaque répertoire du projet à un dossier de destination. Il peut être soit définis explicitement,
soit hérité du répertoire parent à l'exception du dossier
InstallerData qui n'a pas de dossier
d'installation. Rajouter un fichier directement dans InstallerData provoquera donc une erreur car
il ne sera pas possible pour ces fichiers de résoudre le dossier de destination.
Pour installer des fichiers dans le dossier de destination choisi par l'utilisateur,
vous devez d'abord créer un dossier en faisant un click droit sur le dossier
InstallerData
ou sur l'espace blanc de droite et cliquer sur le menu
Nouveau Dossier.
Une boite de dialogue apparaît alors :
| Nom |
Description |
| Nom du nouveau dossier |
Le nom du dossier. Il ne correspond pas forcément au nom du dossier lors de l'installation. Si le nom du dossier est TargetDir et que le chemin de destination est {TargetDir} alors son chemin lors de l'installation sera le dossier de destination du dossier. |
| Packet |
Composant auquel appartient le dossier. |
| Chemin de destination |
Chemin de destination du dossier lors de l'installation. |
 |
Pour le chemin de destination, Vous pouvez utiliser dans les chemin une variable d'environnement. Pour obtenir les dossiers correspondant aux variables sur votre ordinateur vous pouvez
utiliser l'outil "Liste des dossiers spéciaux".
|
| Les fichiers dans le projet d'exemple au format XML |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<Files name="InstallerData">
<Elements>
<Directory name="TargetDir">
<Properties>
<property name="$target" value="{TARGETDIR}"/>
<property name="$packet" value="DBD64667-2210-4965-AE1E-93C5DF10CFB2"/>
</Properties>
<Elements>
<File name="notepad.exe" readOnly="false" hidden="false" system="false">
<Properties>
<property name="$src" value="{windir}\notepad.exe"/>
</Properties>
</File>
</Elements>
</Directory>
</Elements>
</Files>
</DreamShieldProject>
|
| Identifiant XML |
Nom dans l'éditeur de projets |
Description |
| <property name="$target" value="..."/> |
Propriétés du dossier -> Chemin de destination |
Chemin de destination dans lequel sera installé le dossier. |
| <property name="$packet" value="..guid.."/> |
Propriétés du dossier -> packet |
Composant auquel appartient le dossier. Dans le cas du fichier XML il s'agit du guid du composant. |
| <property name="$src" value="..chemin.."/> |
Propriétés du fichier -> Emplacement du fichier source sur le disque |
Emplacement du fichier source, peut être un chemin de la forme C:\MyApp\*.* |
| readOnly, hidden, system |
Attributs du fichier/dossier |
Attributs du fichier ou du dossier : Lecture Seule, Fichier Caché, Fichier Système |
VI. Fonctionnalités supplémentaires
V-A. Licence et Lisez-moi
Les informations de licence et du fichier lisez-moi peuvent être modifiées dans
l'éditeur de projet à la section Pages de Texte et dans le projet XML sous
forme de plugin :
| licence et lisez-moi |
<?xml version="1.0" encoding="utf-8"?>
<DreamShieldProject name="Exemple - installation de notepad" version="1">
<plugins>
<plugin>
<PluginElement type="Deployment.TextFiles.Compiler.TextEntries, Deployment.TextFiles.Compiler">
<TextEntries>
<Licence showOnInstall="true">
Ceci est un exemple de licence
pour l'installation test de notepad.
</Licence>
<Readme showOnInstall="true">
Projet d'installation d'éssai pour
notepad
</Readme>
</TextEntries>
</PluginElement>
</plugin>
</plugins>
</DreamShieldProject>
|
 |
Les textes du fichier de licence et du lisez-moi peuvent être définis
en utilisant le format RTF.
|
V-B. Création de raccourcis
Vous pouvez créer des raccourcis dans n'importe quel dossier du projet d'installation,
à la manière d'un fichier quelconque.
Dans l'éditeur de projet, vous devez faire un click droit sur la liste des fichiers
puis cliquer sur le menu
Nouveau raccourcis.
L'image ci-dessous présente les propriétés à définir pour obtenir un raccourci vers
le programme de désinstallation de votre application.
Dans le projet XML, un raccourci se présente comme suit :
| Raccourcis vers le désinstalleur |
<File name="uninstaller.lnk">
<Properties>
<property name="$ext" value="$lnk"/>
<property name="SCDescription" value="Raccourcis vers le désinstalleur"/>
<property name="SCIcon" value="{UNINSTALLER}"/>
<property name="SCTarget" value="{UNINSTALLER}"/>
</Properties>
</File>
|
V-C. Associer un type de fichier avec une application
DreamShield dispose d'un éditeur des clefs du registre. Vous pouvez à partir
de celui ci créer des clefs et/ou des valeurs. Cependant, un menu permet
de créer très simplement une association entre une application et une extension.
Le champ application peut recevoir divers paramètres et n'est donc pas limité à contenir le chemin d'une application.
Cependant, pour transmettre par exemple des arguments à l'application choisie il doit avoir un format bien défini. Exemple :
TargetDir\dside.exe::"{0}" "%1"
Le format est le suivant :
VARIABLE_1:VARIABLE_2:...::Chaine recevant les paramètres {0} {1} {...}
Cette chaine aura lors de l'exécution la valeur suivante :
Chaine recevant les paramètres VARIABLE_1 VARIABLE_2 ...
Dans le projet XML, l'association est obtenue en recréant les clefs, de la même manière qu'on l'aurait fait avec l'outil regedit.exe
présent avec Windows:
| Association des fichiers dscproj |
<Component name="DreamShield IDE" version="1" selectable="false" selectedByDefault="true" guid="e45b7bb8-a4b8-4416-aa23-0390d9c0307f">
<plugins />
<RegistryKeys>
<Key name="HKEY_CURRENT_USER" keyCreationMode="PlaceHolder">
<plugins />
<Elements />
</Key>
<Key name="HKEY_CURRENT_CONFIG" keyCreationMode="PlaceHolder">
<plugins />
<Elements />
</Key>
<Key name="HKEY_CLASSES_ROOT" keyCreationMode="PlaceHolder">
<plugins />
<Elements>
<Key name=".dscproj" keyCreationMode="CreateAlways">
<plugins />
<DefaultValue name="" keyCreationMode="CreateAlways" type="REG_SZ" internalReferenceEnabled="false">
<plugins />
<Value>DS.dscprojFILE</Value>
</DefaultValue>
<Elements />
</Key>
<Key name="DS.dscprojFILE" keyCreationMode="CreateAlways">
<plugins />
<DefaultValue name="" keyCreationMode="CreateAlways" type="REG_SZ" internalReferenceEnabled="false">
<plugins />
<Value>Projet d'installation DreamShield</Value>
</DefaultValue>
<Elements>
<Key name="DefaultIcon" keyCreationMode="CreateAlways">
<plugins />
<DefaultValue name="" keyCreationMode="CreateAlways" type="REG_SZ" internalReferenceEnabled="true">
<plugins />
<Value>TargetDir\Installer\Icons\installer.ico::{0}</Value>
</DefaultValue>
<Elements />
</Key>
<Key name="shell" keyCreationMode="PlaceHolder">
<plugins />
<Elements>
<Key name="Open.DS" keyCreationMode="CreateAlways">
<plugins />
<DefaultValue name="" keyCreationMode="CreateAlways" type="REG_SZ" internalReferenceEnabled="false">
<plugins />
<Value>Ouvrir</Value>
</DefaultValue>
<Elements>
<Key name="command" keyCreationMode="CreateAlways">
<plugins />
<DefaultValue name="" keyCreationMode="CreateAlways" type="REG_SZ" internalReferenceEnabled="true">
<plugins />
<Value>TargetDir\dside.exe::"{0}" "%1"</Value>
</DefaultValue>
<Elements />
</Key>
</Elements>
</Key>
</Elements>
</Key>
</Elements>
</Key>
</Elements>
</Key>
</RegistryKeys>
</Component>
|
 |
Si la création d'associations au format XML est une tâche qui vous semble trop complexe,
vous pouvez également générer l'association dans l'éditeur de projet, puis, l'exporter
au format XML.
|
VIII. Construction de l'installeur
Une fois que votre projet est terminé, vous pouvez le compiler. Pour
cela, soit vous pouvez accéder à la page Compilation -> Compilation du projet,
soit vous pouvez accéder au menu Projet -> Compiler et Compiler pour le WEB
VI-A. Compilation standard du projet
La compilation standard du projet génère une installation qui sera accessible à partir
du dossier de sortie du compilateur dans le répertoire Output. Les fichiers
seront organisés par disque ( CD ) mais s'il n'y a qu'un seul disque ( CD par défaut ),
seul le dossier DEFAULT_CD sera crée.
Si vous avez spécifié au compilateur de créer une archive SFX, celle-ci se trouvera
dans le dossier OutputSFX
VI-B. Compilation pour un déploiement sur le WEB
La deuxième manière de compiler le projet est en utilisant la compilation pour le WEB,
faisant partie des options apportées par DreamFromTheWeb. DreamShield est un exemple d'application
utilisant DreamFromTheWeb qui lui permet d'avoir trois packages d'installations distincts.
Plusieurs fichiers seront créés dans le dossier Deploy.
| Fichier / Dossier |
Description |
| all.version |
Contient uniquement la chaine de version du projet. Peut être utile avec une ligne de php de la forme :
<p id="infos_page">Version actuelle de DreamShield : win-<? include("./deploy/all.version") ?> </p> |
| static.url |
Adresse relative par rapport au dossier courant de l'installeur statique en ( sans les runtimes du .NET Framework ) |
| static-dotnet.url |
Adresse relative par rapport au dossier courant de l'installeur statique ( avec les runtimes du .NET Framework ), si vous avez décidé d'inclure les runtimes lors de la création du projet d'installation. |
| web.url |
Adresse relative par rapport au dossier courant de l'installeur DreamFromTheWeb ( sans les runtimes du .NET Framework ) |
| web |
Dossier contenant l'installation DreamFromTheWeb sous forme de SFX. |
| web\web-packages |
Packages pour lesquels DreamFromTheWeb a été activé. Ils seront à uploader à l'Adresse spécifiée par WebUrl |
| static et static-dotnet |
Dossiers contenant respectivement les installations statiques sous forme de SFX sans le .NET Framework et avec le .NET Framework |
VIII-C. Projet d'exemple : Installation de Notepad ( XML )
Le projet complet permettant d'installer Notepad ( Notepad.exe )
est disponible dans le dossier d'installation de DreamShield, dans
le sous dossier Samples\XmlProjects.
IX. Fonctionnalités avancées
VI-A. Plugins
DreamShield permet d'utiliser des plugins de deux manières : soit
par l'utilisation d'assemblies managées ( .NET ), soit en rajoutant un
script LUA. De plus importants exemples seront disponibles par la suite.
VI-A-1. Vérifier une condition avant l'installation ( LUA )
Dans la page Script de l'installeur, activez LUA dans le projet.
Faites ensuite un click droit sur le dossier script et créez un nouveau
fichier de script. Un code par défaut sera généré dans le fichier.
Le code suivant est présent dans l'installation de DreamShield 0.8 et
vérifie qu'il n'y a aucune version de DreamShield 0.7 installé sur l'ordinateur
cible ( ces deux versions présentant quelques différences au niveau du projet d'installation ).
| Function de vérification |
function InitBootstrapper(
bootstrapper
)
Guid=System.Guid
guid = Guid("7a5b26cb-d3b7-4982-95e8-a69454e2b1e7")
if DS_Indexer.LocalProductIndexEntry.IsProductInstalled (
guid ) then
bootstrapper:CancelInit("Une installation plus ancienne de DreamShield est déjà présente sur cet ordinateur. Vous devez au préalable la désinstaller.")
end
end
|
| A rajouter à la fin du fichier afin de charger les bibliothèques |
... DSBoostrappers = CLRPackage("DreamShield.Deployment.dll","DreamShield.Deployment.Bootstrappers")
DSInstallers = CLRPackage("DreamShield.Deployment.dll","DreamShield.Deployment.Installers")
System = CLRPackage("System.dll","System");
Deployment = CLRPackage("DreamShield.Deployment.dll", "DreamShield.Deployment")
DS_Indexer = CLRPackage("DreamShield.Deployment.dll", "DreamShield.Deployment.Driver.Indexer")
... first_init();
|
| A rajouter au début du fichier afin de charger les assemblies |
.. luanet.load_assembly("System.Xml")
luanet.load_assembly("DreamShield.Deployment")
|
VI-A-2. Rajouter une page personnalisée ( C# )
DreamShield permet d'étendre l'assistant en ajoutant de nouvelles pages. Pour obtenir
une aide quant à l'ajout de pages consultez le fichier PDF accessible par le menu
Aide -> Tutoriels -> Page personnalisée pour l'assistant d'installation
VI-A-3. Exécuter une action pendant l'installation d'un composant ( LUA )
Afin d'exécuter un script LUA pendant un moment précis de l'installation, créez un nouveau
script LUA puis faites dans l'éditeur un click droit et ouvrez le menu Insérer un modèle.
Le modèle Evénements d'installation créera plusieurs fonctions LUA qui correspondront chacune
à un évènement de l'installation.
VIII. Conclusion et Remerciements
DreamShield est un projet que je développe maintenant depuis près de 1 an et j'espère qu'il pourra devenir
un outil efficace et utile pour toutes la communauté des programmeurs .NET de developpez.com, et bien plus encore.
A ce titre, je tient à remercier l'ensemble de l'équipe des rédacteurs/modérateurs qui m'ont aidé jusqu'ici comme
dev01,
Janitrix,
Cardi et
Giovanny Temgoua.
Merci à
Etanne pour sa relecture.
Aujourd'hui, DreamShield peut être trouvé
ici,
ici et dispose d'un
forum
ici.

