Déploiement du programme d'installation de Visual Studio

Le déploiement de Windows Installer vous permet de créer un package de programme d'installation à distribuer aux utilisateurs ; l'utilisateur exécute le fichier d'installation et suit les étapes d'un Assistant pour installer l'application. Pour ce faire, vous ajoutez un projet d'installation à votre solution. Lorsque le projet est généré, un fichier d'installation est créé et distribué aux utilisateurs ; l'utilisateur exécute le fichier d'installation et suit les étapes d'un Assistant pour installer l'application.

Microsoft Windows Installer est un service d'installation et de configuration piloté par les données fourni avec le système d'exploitation Windows. Pour chaque application installée, Windows Installer conserve une base de données d'informations, notamment sur les fichiers, les clés de Registre et les composants. Lors de la désinstallation d'une application, la base de données est contrôlée afin de s'assurer qu'aucune autre application ne nécessite un fichier, une clé de Registre ou un composant qui s'apprête à être supprimé. Cette vérification empêche que le retrait d'une application n'entraîne l'interruption d'une autre application.

Notes

Les éditions Express n'incluent pas la technologie Windows Installer. Pour plus d'informations sur la technologie de déploiement utilisée dans les éditions Express, consultez Sécurité et déploiement ClickOnce.

En utilisant les outils de déploiement de Visual Studio avec les fonctionnalités fournies par Windows Installer, vous pouvez déployer et gérer vos applications.

Création d'un package de programme d'installation

Vous devez utiliser un package de programme d'installation pour déployer l'application et ses composants requis. Généralement, les applications dépendent du .NET Framework, de SQL Server Express, voire d'un fichier EXE ou DLL personnalisé. Toutefois, il n'est pas certain que les ordinateurs des utilisateurs finaux disposent de la version appropriée du .NET Framework ou d'autres dépendances sur lesquelles votre application repose. C'est la raison pour laquelle il n'est pas recommandé de copier votre application sur les ordinateurs des utilisateur finaux.

Emplacement d'installation

Les utilisateurs finaux peuvent installer votre application à partir du Web, d'un CD-ROM, d'un partage de fichiers réseau ou autre. L'emplacement de l'installation affecte le modèle de projet que vous pouvez utiliser. Par exemple, si vous souhaitez que les utilisateurs finaux effectuent l'installation à partir du Web, vous pouvez utiliser le modèle de projet d'installation Web. Pour effectuer l'installation à partir d'un CD-ROM ou d'un réseau, utilisez le modèle de projet d'installation. Pour plus d'informations sur les modèles de projet de déploiement, consultez Projets d'installation et de déploiement.

Fichiers et dossiers

Vous pouvez utiliser l'Éditeur du système de fichiers pour contrôler l'emplacement et la procédure d'installation des fichiers de déploiement. L'organisation du système de fichiers peut différer d'un ordinateur à un autre, et les noms de dossiers peuvent également différer. L'Éditeur du système de fichiers utilise le concept de dossiers abstraits pour s'assurer que les fichiers ont été installés à l'emplacement de votre choix. Pour plus d'informations, consultez Gestion de l'installation des fichiers lors d'un déploiement.

Les dossiers virtuels représentent des dossiers système Windows. Par exemple, le dossier Bureau est l'équivalent du dossier système Bureau. Étant donné que Windows effectue le suivi de l'emplacement des dossiers système, quel que soit l'emplacement ou le nom du dossier, les fichiers qui se trouvent dans le Dossier Bureau se retrouvent toujours dans le dossier système du Bureau. Pour plus d'informations, consultez Dossiers spéciaux et personnalisés.

Vous pouvez aussi créer vos propres dossiers et les placer sous n'importe quel dossier système. Par exemple, vous pouvez créer un dossier Application Data sous le dossier Application — peu importe que le dossier Application se trouve sur un ordinateur cible, les fichiers de votre dossier Application Data seront toujours installés au même emplacement relatif. Pour plus d'informations, consultez Comment : ajouter et supprimer des dossiers dans l'Éditeur du système de fichiers.

Les dossiers de l'Éditeur du système de fichiers peuvent contenir des fichiers, des sorties de projet et des assemblys. Les sorties de projet représentent les éléments contenus dans un autre projet de la solution et peuvent inclure les principaux résultats de la génération (un fichier exécutable, par exemple), des ressources localisées, des informations de débogage symbolique, des fichiers de contenu (pages HTML, par exemple) et les fichiers sources du projet. Chacune de ces sorties est référencée en tant que groupe de sorties de projet. Un groupe de sorties de projet contient la sortie principale (également appelée sortie clé) ainsi que les dépendances et sorties supplémentaires éventuelles. Pour plus d'informations, consultez Comment : ajouter et supprimer des sorties de projet dans l'Éditeur du système de fichiers et Comment : ajouter des éléments à un projet de déploiement.

En outre, il est possible de définir des conditions sur un fichier ou un dossier à l'aide de la propriété Condition. Ces conditions permettent de personnaliser l'installation des fichiers en fonction de conditions existant sur un ordinateur cible pendant l'installation. Par exemple, vous pouvez choisir d'installer différents fichiers en fonction de la version du système d'exploitation de l'ordinateur cible. Pour plus d'informations, consultez Condition, propriété.

L'Éditeur du système de fichiers prend aussi en charge la création de raccourcis, ce qui vous permet de placer les fichiers dans un dossier et de pointer vers eux à partir d'un raccourci sur le Bureau ou dans un autre dossier. Pour plus d'informations, consultez Comment : ajouter et supprimer des raccourcis dans l'Éditeur du système de fichiers.

Associations de fichiers

Lorsque vous déployez une application, vous souhaitez souvent associer un type de fichier à cette application. Par exemple, si votre application crée et utilise des fichiers avec l'extension .myfile, vous souhaitez que votre application soit associée au type de fichier .myfile de sorte que lorsqu'un utilisateur double-clique sur un fichier .myfile, celui-ci s'ouvre dans votre application.

Les outils de déploiement de Visual Studio incluent un Éditeur des types de fichiers qui permet de spécifier des types de documents et de les associer à des extensions de fichiers. De plus, vous pouvez spécifier les verbes et actions correspondant à chaque type de document, ainsi que les types MIME pour les types de documents à utiliser dans les navigateurs. Pour plus d'informations, consultez Gestion des types de fichiers lors d'un déploiement.

Pendant l'installation, les paramètres que vous spécifiez dans l'Éditeur des types de fichiers sont mis à jour sur l'ordinateur cible.

Registre

L'accès au Registre, la définition des valeurs du Registre, ou la création de clés de Registre font souvent partie intégrante du déploiement d'une application. Les outils de déploiement de Visual Studio fournissent ces fonctionnalités.

L'Éditeur du Registre dans Visual Studio est semblable à l'Éditeur du Registre Windows : les deux outils fournissent une représentation hiérarchique du Registre sur un ordinateur cible. Les racines de Registre standard sont représentées. Vous pouvez modifier les valeurs des clés existantes, ajouter des valeurs pour de nouvelles clés et spécifier des clés par défaut. Pour plus d'informations, consultez Gestion des paramètres du Registre lors d'un déploiement.

Durant l'installation, les clés et les valeurs spécifiées dans l'Éditeur du Registre sont écrites dans le Registre de l'ordinateur cible.

En outre, vous pouvez placer des conditions sur n'importe quelle clé ou valeur de Registre à l'aide de la propriété Condition. Ces conditions permettent de personnaliser le Registre en fonction de conditions existant sur un ordinateur cible pendant l'installation. Par exemple, vous pouvez choisir d'entrer une valeur de Registre différente en fonction de la version du système d'exploitation de l'ordinateur cible.

Signature Authenticode

Vous pouvez signer une application ou un composant afin que les utilisateurs puissent vérifier qui l'a publié et s'assurer qu'il s'agit d'un produit sécurisé. Nous vous recommandons de signer les fichiers CAB et les programmes d'installation téléchargés par le biais d'un navigateur Web.

Vous pouvez utiliser les outils de déploiement de Visual Studio pour signer un programme d'installation, un module de fusion ou un fichier CAB à l'aide de la technologie Authenticode de Microsoft. Vous devez tout d'abord obtenir un certificat numérique pour signer votre application ou vos composants.

Pour utiliser la signature Authenticode, vous devez activer des manifestes ClickOnce signés dans votre projet de déploiement. Pour plus d'informations, consultez Page Signature, Concepteur de projets.

Global Assembly Cache

Le Global Assembly Cache est un cache de code fourni par .NET Framework, utilisé pour stocker des assemblys qui doivent être partagés par plusieurs applications. Pour être installé dans le Global Assembly Cache, l'assembly doit posséder un nom fort, ce qui permet à une application ou à un composant de disposer d'une identité unique que d'autres logiciels peuvent utiliser pour l'identifier et y faire référence de manière explicite. Pour plus d'informations, consultez Comment : signer un assembly (Visual Studio).

Pour installer un assembly sur le Global Assembly Cache, ajoutez l'assembly ou le groupe de sorties de projet de l'assembly au dossier Global Assembly Cache dans l'Éditeur du système de fichiers. Pour ouvrir cet éditeur, dans le menu Affichage, sélectionnez Éditeur, puis cliquez sur Éditeur du système de fichiers.

Le dossier Global Assembly Cache est différent des autres dossiers de l'Éditeur du système de fichiers. Il ne comporte aucune propriété définissable, et vous ne pouvez pas créer de raccourcis vers le dossier ou les assemblys dans le dossier.

Sélection des composants requis

Pour déployer avec succès une application, vous devez également déployer tous les composants référencés par l'application. Par exemple, la plupart des applications créées avec Visual Studio ont une dépendance sur le .NET Framework. Une version requise du common language runtime doit être présente sur l'ordinateur cible avant que l'application soit installée. Les outils de déploiement dans Visual Studio vous permettent d'installer le .NET Framework et d'autres composants en tant que partie de votre installation. Le processus d'installation des composants requis est également connu sous le nom d'amorçage.

Pour plus d'informations, consultez Comment : installer les composants requis dans le déploiement de Windows Installer

Installation avec les privilèges d'administrateur

L'installation administrative est une fonctionnalité de Microsoft Windows Installer qui vous permet d'installer une image source d'une application sur un partage réseau. Les utilisateurs d'un groupe de travail ayant accès au partage réseau peuvent ensuite installer l'application à partir de l'image source.

L'Éditeur muni d'une interface utilisateur vous permet de spécifier un ensemble de boîtes de dialogue d'installation différentes qui s'affichent lorsqu'un administrateur installe l'application sur un partage réseau via la ligne de commande à l'aide de l'option de ligne de commande /a (msiexec /aNomProgrammeInstallation). Pour plus d'informations, consultez Gestion de l'interface utilisateur lors d'un déploiement.

Notes

Lors de l'installation d'une application via l'installation administrative, les fichiers d'application d'amorçage (fichiers qui installent Windows Installer, si nécessaire) ne sont pas copiés sur le serveur même si la propriété Bootstrapper a la valeur Programme d'amorçage de Windows Installer. Si les fichiers de l'application d'amorçage sont obligatoires pour l'installation, vous devez copier manuellement les fichiers Instmsia.msi, Instmsiw.msi, Setup.exe et Setup.ini sur le serveur. Ces fichiers sont placés dans le même répertoire que le fichier .msi de votre application.

Pour plus d'informations, consultez la documentation du Kit de développement Windows Installer dans Installation administrative (Windows Installer).

Windows et élévation

La technologie Windows Installer prend en charge l'installation de logiciel sur les systèmes d'exploitation Windows Vista et Windows 7. L'utilisateur final qui installe des applications doit recevoir des invites uniquement pour chacune des installations de composant nécessitant une élévation, même lorsque l'ordinateur de l'utilisateur s'exécute sous le Contrôle de compte d'utilisateur (User Account Control, UAC).

Élévation d'applications

En général, Setup.exe (ou programme d'amorçage) n'est pas exécuté avec élévation de privilèges ; il s'exécute au niveau d'autorisation de l'utilisateur actuel. Par conséquent, aucune invite d'élévation n'est générée lors du lancement de l'installation de l'application finale. Toutefois, contrairement à Setup.exe, le fichier .msi génère une invite à l'intention de l'utilisateur.

Dans le manifeste de contrôle de compte d'utilisateur incorporé du programme d'amorçage, le nœud requestedExecutionLevel spécifie que l'installation s'exécute en tant qu'utilisateur actuel (asInvoker) :

<requestedExecutionLevel level="asInvoker" />

Toutefois, vous pouvez élever l'installation de l'application, le cas échéant. Par exemple, la modification des paramètres Services Internet (IIS, Internet Information Services) dans un projet d'installation Web, de même que l'installation d'assemblys dans le Global Assembly Cache, requièrent des privilèges d'administrateur. L'invite d'élévation est générée après l'installation des composants requis mais avant l'installation de l'application.

Pour élever les autorisations relatives à une installation, ouvrez le fichier projet (.vdproj). Dans la section MsiBootstrapper du fichier projet, affectez la valeur True à la propriété RequiresElevation. Cette propriété n'est pas disponible dans l'environnement de développement intégré (IDE) de Visual Studio. Par conséquent, vous devez utiliser le fichier projet. Pour plus d'informations, consultez RequiresElevation, propriété.

Élévation assistée par un administrateur

Windows Installer prend en charge l'élévation assistée par un administrateur sous Windows Vista et Windows 7. Dans ce scénario, l'utilisateur est invité à entrer les informations d'identification d'administrateur et l'administrateur entre le mot de passe de l'utilisateur. Pour prendre en charge ce scénario, le programme d'amorçage affecte la valeur True à la propriété AdminUser lorsque votre ordinateur s'exécute sur Windows Vista ou une version ultérieure de Windows.

Notes

Si vous exécutez Windows Vista sur un ordinateur qui n'utilise pas le contrôle de compte d'utilisateur et que vous n'êtes pas un administrateur, AdminUser conservera la valeur True. Par conséquent, les programmes d'installation .exe (tels que SQLExpress32.exe) doivent permettre la détection des autorisations appropriées et générer un code de sortie spécifique si elles sont insuffisantes. Setup.exe doit pouvoir intercepter ce code de sortie et afficher un message indiquant qu'un administrateur est requis.

Élévation des installations de composants requis

Windows Vista et Windows 7 élèvent l'installation des composants requis lorsque cela est nécessaire. Le programme d'amorçage n'effectue pas d'élévation ; lorsque Windows Vista ou Windows 7 s'exécute sous le Contrôle de compte d'utilisateur, il émet une invite pour chaque composant requis devant être élevé, à moins qu'il ne soit déjà installé. En cas d'échec de l'élévation d'un package, le programme d'amorçage échoue et envoie un message d'erreur.

Élévation d'actions personnalisées

Les actions personnalisées que vous créez dans l'Éditeur des actions personnalisées sont exécutées avec élévation de privilèges. Les actions personnalisées ne doivent pas accéder aux données spécifiques à l'utilisateur, telles que le Registre ou le système de fichiers, car elles ne s'exécuteront pas dans le compte de l'utilisateur qui est à l'origine de l'appel.

Par défaut, les actions personnalisées sont exécutées avec élévation de privilèges, car le paramètre par défaut de la propriété NoImpersonate a la valeur True dans l'Éditeur des actions personnalisées. Si vous affectez la valeur False à la propriété NoImpersonate, l'action personnalisée empruntera l'identité de l'utilisateur à l'origine de l'appel qui ne bénéficiera plus que d'autorisations réduites.

Différences entre les versions de Visual Studio

Notez également qu'il existe des différences entre l'exécution des projets d'installation Visual Studio 2005 et Visual Studio 2008 sous le contrôle de compte d'utilisateur.

La détection du programme d'installation intégrée Windows Vista ou Windows 7 demande un consentement en cas d'exécution sous le Contrôle de compte d'utilisateur. UN programme d'amorçage (Setup.exe) généré à partir de Visual Studio 2005 demande toujours l'autorisation de l'utilisateur, quelle que soit l'application à installer. Dans la mesure où Setup.exe et tous ses processus s'exécutent avec un jeton administrateur sous Windows Vista et Windows 7, l'installation de l'application finale s'effectuera avec des privilèges élevés. Si un utilisateur exécute Setup.exe avec élévation assistée par un administrateur, l'application sera installée avec le profil de l'utilisateur élevé (pas le profil de l'administrateur).

Dans Visual Studio 2008 et Visual Studio 2010, Setup.exe ne demande pas l'élévation au moment de son démarrage. Pour empêcher l'affichage de l'invite d'élévation, le manifeste incorporé du programme d'amorçage spécifie que Setup.exe doit s'exécuter avec le niveau d'exécution demandé asInvoker. Cela permet à l'installation de l'application finale de ne pas être exécutée avec élévation de privilèges tout en permettant, le cas échéant, d'élever les privilèges des composants requis de l'installation. Le programme d'amorçage appelle ShellExecute pour lancer les composants requis. Windows Vista ou Windows 7 reçoit cet appel, exécute la détection d'installation et émet une invite utilisateur avant l'installation.

Cette modification présente l'inconvénient de générer une invite pour chaque composant requis à installer, en plus de l'application elle-même. Toutefois, si tous les composants requis sont déjà installés sur l'ordinateur, l'installation ne génère pas nécessairement d'invites. En outre, aucun contrôle externe ne doit faire l'objet d'une élévation. Les contrôles externes fonctionneront, mais l'utilisateur recevra plusieurs invites d'élévation pour chaque contrôle externe, en plus des invites du programme d'installation.

Voir aussi

Tâches

Dépannage des projets de configuration et de déploiement

Référence

Erreurs de déploiement et support

Concepts

Projets d'installation et de déploiement

Autres ressources

Déploiement d'applications et de composants

Éditeurs de déploiement

Tâches et procédures pas à pas relatives au déploiement

Boîtes de dialogue du déploiement

Exemples et procédures pas à pas relatifs au déploiement