Partager via


Création et exécution d’un fichier de commandes de déploiement

par Jason Lee

Cette rubrique explique comment générer un fichier de commandes qui vous permettra d’exécuter un déploiement à l’aide de fichiers projet Microsoft Build Engine (MSBuild) en tant que processus reproductible en une seule étape.

Cette rubrique fait partie d’une série de tutoriels basés sur les exigences de déploiement d’entreprise d’une société fictive nommée Fabrikam, Inc. Cette série de tutoriels utilise un exemple de solution , la solution Gestionnaire de contacts , pour représenter une application web avec un niveau de complexité réaliste, notamment une application ASP.NET MVC 3, un service Windows Communication Foundation (WCF) et un projet de base de données.

La méthode de déploiement au cœur de ces tutoriels est basée sur l’approche de fichier projet fractionné décrite dans Présentation du processus de génération, dans laquelle le processus de génération est contrôlé par deux fichiers projet : l’un contenant des instructions de génération qui s’appliquent à chaque environnement de destination et l’autre contenant des paramètres de build et de déploiement spécifiques à l’environnement. Au moment de la génération, le fichier projet spécifique à l’environnement est fusionné dans le fichier projet indépendant de l’environnement pour former un ensemble complet d’instructions de génération.

Vue d’ensemble du processus

Dans cette rubrique, vous allez apprendre à créer et à exécuter un fichier de commandes qui utilise ces fichiers projet pour effectuer un déploiement reproductible dans votre environnement cible. Essentiellement, le fichier de commandes doit simplement contenir une commande MSBuild qui :

  • Indique à MSBuild d’exécuter le fichier Publish.proj indépendant de l’environnement.
  • Indique au fichier Publish.proj quel fichier contient les paramètres de projet spécifiques à l’environnement et où le trouver.

Créer une commande MSBuild

Comme décrit dans Présentation du processus de génération, le fichier projet spécifique à l’environnement( par exemple , Env-Dev.proj) est conçu pour être importé dans le fichier Publish.proj indépendant de l’environnement au moment de la génération. Ensemble, ces deux fichiers fournissent un ensemble complet d’instructions qui indiquent à MSBuild comment générer et déployer votre solution.

Le fichier Publish.proj utilise un élément Import pour importer le fichier projet spécifique à l’environnement.

<Import Project="$(TargetEnvPropsFile)"/>

Par conséquent, lorsque vous utilisez MSBuild.exe pour générer et déployer la solution Gestionnaire de contacts, vous devez :

  • Exécutez MSBuild.exe sur le fichier Publish.proj .
  • Spécifiez l’emplacement du fichier projet spécifique à l’environnement en fournissant un paramètre de ligne de commande nommé TargetEnvPropsFile.

Pour ce faire, votre commande MSBuild doit ressembler à ceci :

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj

À partir de là, il s’agit d’une étape simple pour passer à un déploiement reproductible en une seule étape. Il vous suffit d’ajouter votre commande MSBuild à un fichier .cmd. Dans la solution gestionnaire de contacts, le dossier Publier inclut un fichier nommé Publish-Dev.cmd qui effectue exactement cette opération.

%windir%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe Publish.proj /fl /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj
echo 
pause

Remarque

Le commutateur /fl indique à MSBuild de créer un fichier journal nommé msbuild.log dans le répertoire de travail dans lequel MSBuild.exe a été appelée.

Pour déployer ou redéployer la solution gestionnaire de contacts, il vous suffit d’exécuter le fichier Publish-Dev.cmd . Lorsque vous exécutez le fichier, MSBuild :

  • Générez tous les projets dans la solution.
  • Générez des packages web déployables pour les projets d’application web.
  • Générez des fichiers .dbschema et .deploymanifest pour les projets de base de données.
  • Déployez les packages web sur le serveur web.
  • Déployez la base de données sur le serveur de base de données.

Exécuter le déploiement

Une fois que vous avez créé un fichier de commandes pour votre environnement cible, vous devez être en mesure d’effectuer l’intégralité du déploiement en exécutant simplement le fichier.

Pour déployer la solution Gestionnaire de contacts dans votre environnement de test

  1. Sur votre station de travail de développeur, ouvrez Windows Explorer, puis accédez à l’emplacement du fichier Publish-Dev.cmd.

  2. Double-cliquez sur le fichier pour l’exécuter.

  3. Si une boîte de dialogue Ouvrir un fichier – Avertissement de sécurité s’affiche, cliquez sur Exécuter.

  4. Si vos paramètres de configuration et vos serveurs de test sont correctement configurés, la fenêtre d’invite de commandes affiche un message Build réussie lorsque MSBuild a terminé le traitement des fichiers projet.

    Si vos paramètres de configuration et vos serveurs de test sont correctement configurés, la fenêtre d’invite de commandes affiche un message Build réussie lorsque MSBuild a terminé le traitement des fichiers projet.

  5. Si c’est la première fois que vous déployez la solution dans cet environnement, vous devez ajouter le compte d’ordinateur du serveur web de test aux rôles db_datawriter et db_datareader sur la base de données ContactManager . Cette procédure est décrite dans Configurer un serveur de base de données pour la publication Web Deploy.

    Remarque

    Vous devez uniquement affecter ces autorisations lorsque vous créez la base de données. Par défaut, le processus de génération ne recrée pas la base de données à chaque déploiement. Au lieu de cela, il compare la base de données existante au schéma le plus récent et apporte uniquement les modifications requises. Par conséquent, vous devez uniquement mapper ces rôles de base de données la première fois que vous déployez la solution.

  6. Ouvrez Internet Explorer et accédez à l’URL de l’application Gestionnaire de contacts (par exemple, http://testweb1:85/ContactManager/).

  7. Vérifiez que l’application fonctionne comme prévu et que vous pouvez ajouter des contacts.

    Vérifiez que l’application fonctionne comme prévu et que vous pouvez ajouter des contacts.

Conclusion

La création d’un fichier de commandes contenant vos instructions MSBuild vous offre un moyen simple et rapide de créer et de déployer une solution multi-projets dans un environnement de destination spécifique. Si vous devez déployer votre solution à plusieurs reprises dans plusieurs environnements de destination, vous pouvez créer plusieurs fichiers de commandes. Dans chaque fichier de commandes, la commande MSBuild génère le même fichier projet universel, mais elle spécifie un fichier projet différent spécifique à l’environnement. Par exemple, un fichier de commandes à publier dans un environnement de développement ou de test peut contenir cette commande MSBuild :

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Dev.proj

Un fichier de commandes à publier dans un environnement intermédiaire peut contenir cette commande MSBuild :

msbuild.exe Publish.proj /p:TargetEnvPropsFile=EnvConfig\Env-Stage.proj

Remarque

Pour obtenir des conseils sur la façon de personnaliser les fichiers projet spécifiques à l’environnement pour vos propres environnements serveurs, consultez Configurer les propriétés de déploiement d’un environnement cible.

Vous pouvez également personnaliser le processus de génération pour chaque environnement en remplaçant les propriétés ou en définissant d’autres commutateurs dans votre commande MSBuild. Pour plus d’informations, consultez Référence de ligne de commande MSBuild.