Partager via


Création d’un package Web Deploy à partir de Visual Studio 2010

par Ben Byrd

Résumé

Jusqu’à présent, nous avons installé Web Deploy sur un serveur web et activé les non-administrateurs pour déployer des applications sur IIS 7. Dans cette procédure pas à pas, nous allons découvrir comment les développeurs peuvent créer des packages Web Deploy, qui peuvent être déployés par les utilisateurs qui ont accès au serveur web (par exemple, les administrateurs ou les équipes informatiques/ops). Un package contient les fichiers (fichiers binaires et contenu statique), les bases de données et les paramètres IIS que vous souhaitez déployer.

Dans ce tutoriel, nous allons déployer le package sur notre serveur à partir de l’ordinateur de développement et explorerons également l’importation sur le serveur à l’aide de l’interface utilisateur Web Deploy dans le Gestionnaire IIS.

Packages de déploiement web

Dans Visual Studio 2010, vous pouvez créer des packages Web Deploy via l’interface utilisateur ou à l’aide de MSBuild sur la ligne de commande. Ces deux méthodes génèrent 1) un package Web Deploy standard et 2) un fichier de lot (.cmd) qui vous aidera à déployer le package.

Configuration des options de package/publication :

  1. Démarrez Visual Studio 2010 et chargez la solution C# Contoso University.

  2. Dans l’Explorateur de solutions, développez le nœud ContosoUniversity, puis double-cliquez sur Propriétés (C#)
    Screenshot of the Solution Explorer screen with a highlight on the Properties option.

  3. Cliquez sur l’onglet Package/Publier web.
    Screenshot of the Properties screen with a focus on the Package/Publish Web tab.

  4. Choisissez la configuration du package.
    Screenshot of the Configuration and Platform fields.
    Les packages sont spécifiques à la configuration et les paramètres sont définis par configuration. Vous devez donc choisir la configuration et configurer le paramètre avant de créer un package.

  5. Configurer Éléments à déployer (s’applique à toutes les méthodes de déploiement)
    Screenshot of the Items to Deploy field.
    Ces options seront utilisées, que vous publiez avec Web Deploy ou une autre méthode de publication.

    • Éléments à déployer a trois options :
      Screenshot of a drop-down list with the Only files needed to run this application option highlighted.
      L’option fichiers uniquement nécessaires pour exécuter cette application doit être suffisant dans la plupart des cas. Cela exclut le code source, les fichiers projet et d’autres fichiers qui ne sont pas normalement nécessaires pour exécuter un site. L’option Tous les fichiers de ce projet publiera l’ensemble mentionné ci-dessus, ainsi que les fichiers sources, les fichiers projet et d’autres fichiers associés. L’option Tous les fichiers de ce dossier de projet l’option inclura des fichiers non dans le projet, à l’exception des fichiers situés sous le dossier obj.
    • L’option Exclure les symboles de débogage générés indique à VS d’exclure les symboles de débogage si les symboles sont générés.
    • L’option Exclure les fichiers de l’option de dossier App_Data exclut les fichiers du dossier App_Data.
  6. Configurer Éléments à déployer (s’applique uniquement au Web Deploy)
    Screenshot of the Items to deploy (applies to Web Deploy only) field.
    Ces options s’appliquent uniquement lorsque vous créez un package Web Deploy ou utilisez le protocole Web Deploy pour la publication.

    • L’option Inclure toutes les bases de données indique à Web Deploy s’il faut déployer des bases de données configurées dans l’onglet Package/Publier SQL.
    • Inclure tous les paramètres IIS configurés dans IIS/IIS Express et Inclure les paramètres du pool d’applications utilisés par ces options de projet web sont abordés dans l’article {LIENS vers l’article à propos des Paramètres IIS} et sont disponibles uniquement lorsque vous avez sélectionné Utiliser le serveur web local sous l’onglet Propriété Web au lieu du serveur de développement Cassini.
  7. Configurer les paramètres du package de déploiement web
    Screenshot of the Web Deployment Package Settings section showing the zip file location and application name to be used on the destination server.

    • L’option Créer un package de déploiement en tant que fichier zip détermine si un fichier zip ou une structure de répertoires (Archive Directory) est créé au moment du package. Sauf si vous créez des packages qui rencontreraient la limite de taille de fichier ZIP de 2 147 483 647 octets (Int.MaxValue), nous vous recommandons d’utiliser le format ZIP.
    • L’option Emplacement où le package sera créé spécifie l’emplacement où le fichier de package sera créé. Vous devez vous assurer que vous disposez d’autorisations d’écriture sur l’emplacement que vous spécifiez.
    • L’option Nom du site web/de l’application IIS à utiliser sur le serveur de destination spécifie le site ou le nom d’application par défaut qui sera utilisé sur le serveur de destination si l’utilisateur ne spécifie pas un autre nom.
    • Les options Chemin d’accès physique de l’application web sur le serveur de destination (utilisé uniquement lorsque les paramètres IIS sont inclus et Mot de passe utilisé pour chiffrer les paramètres IIS sécurisés sont abordées dans l’article {LIENS vers l’article à propos des Paramètres IIS}

Configuration des options de package/publication de SQL :

Il existe des scénarios dans lesquels vous souhaitez déployer une base de données avec votre application. Par exemple, lors du déploiement de votre application pour la première fois, vous pouvez déployer la base de données avec le schéma et les données.

Notez que Visual Studio 2010 ne prend pas en charge le déploiement incrémentiel de base de données.

  1. Si vous souhaitez inclure des bases de données dans votre package, cliquez sur l’onglet Package/Publier SQL.
    Screenshot of the Web Deployment Package Settings section.

  2. Choisissez la configuration du package.
    Screenshot of the available tabs with a focus on the Package/Publish S Q L tab.
    Les packages sont spécifiques à la configuration. Vous devez donc choisir le paramètre de configuration du package avant de le créer.

  3. Si votre fichier Web.config a une chaîne de connexion aux base de données, vous pouvez cliquer sur Importer à partir de Web.Config. Un message s’affiche lorsque l’importation est terminée.
    Screenshot of the Package/Publish S Q L tab with a focus on the Database Entries field, showing the Display and Name categories.
    Les éléments suivants s’affichent si aucune chaîne de connexion n’a été trouvée :
    Screenshot of a Microsoft Visual Studio error message, stating that there was no connection string found in the Web.config.
    Si vous voyez cette erreur, vérifiez que le fichier Web.Config a la chaîne de connexion souhaitée et que le fichier n’a pas été modifié (un astérisque dans l’onglet éditeur indique que le fichier a été modifié et que les modifications n’ont pas été enregistrées.)

  4. Si une base de données que vous souhaitez ajouter à votre package de déploiement n’est pas répertoriée sous Entrées de base de données, cliquez sur le bouton Ajouter pour ajouter la connexion.

  5. Une fois que toutes vos connexions sont ajoutées, vous pouvez sélectionner une entrée et ajuster son ordre dans la liste pour spécifier l’ordre dans lequel il sera ajouté au package, et ainsi déployé, à l’aide des flèches haut et bas.

    Le fait de cliquer sur une entrée de base de données vous permet de le supprimer.

  6. Ensuite, configurez les détails de chaque base de données dans la section Détails de l’entrée de base de données.

    1. Sélectionnez une base de données dans la liste Entrées de base de données.
      Screenshot of the Database Entry Details list.
    2. Dans le champ Chaîne de connexion pour la base de données de destination, entrez la chaîne de connexion à utiliser lorsque la base de données est déployée sur le serveur. Cela est nécessaire pour la publication en un clic, mais pour l’empaquetage, cette valeur sera utilisée comme valeur par défaut qui peut être modifiée au moment du déploiement.)
      Remarque : cette valeur ne sera pas utilisée pour mettre à jour les informations de chaîne de connexion dans le fichier Web.config. Vous pouvez mettre à jour votre fichier Web.config pour chaque configuration de build à l’aide de transformations Web.config. Pour plus d’informations sur les transformations Web.config, consultez {lien vers l’article de publication}, cet article sur MSDN, ou le blog de Vishal Joshi ici sous la section Transformation Web.Config.
    3. L'option Extraire les données et/ou le schéma d'une base de données existante permet de scripter la base de données indiquée par la chaîne de connexion du champ de la base de données source et de scripter le schéma, les données ou les deux en fonction des paramètres sélectionnés dans les options de script de la base de données.
    4. La dernière option, Scripts de base de données, consiste à ajouter des scripts SQL personnalisés et à choisir l’ordre dans lequel les scripts sont exécutés. Si vous avez coché la case Extraire les données et/ou le schéma d'une base de données existante sous Informations sur la base de données source, la case à cocher [Option de script de base< de données généré automatiquement> ] " apparaît. Si vous souhaitez exécuter des scripts supplémentaires, cliquez sur Ajouter un script. Accédez à l’emplacement du script, puis cliquez sur Ouvrir. Vous pouvez ensuite le sélectionner dans la section Scripts de base de données et utiliser les flèches haut et bas pour ajuster son ordre d’exécution.
    5. La dernière option, Notes de déploiement de base de données, est facultative.
    6. Enregistrez maintenant les modifications apportées à la configuration avant de continuer.

Maintenant que nous avons configuré les paramètres d’empaquetage, nous pouvons créer un package.

Génération du package à partir de Visual Studio 2010

  1. Dans VS 2010, sélectionnez votre waP dans l’Explorateur de solutions.

  2. Cliquez avec le bouton droit sur le WAP.

  3. Sélectionnez Package de déploiement de build.
    Screenshot of the right-click menu with a focus on the Build Deployment Package option.

  4. Notez que si vous n’avez jamais connecté à Contoso University, le fichier aspnetdb.mdf n’existe pas. La création du package échoue avec une erreur similaire à celle-ci : « Impossible de se connecter à la base de données 'C :\code\ContosoUniversity\ContosoUniversity\ContosoUniversity\App_Data\aspnetdb.mdf'. Une connexion a été établie avec le serveur, mais une erreur s’est produite pendant le processus de connexion. »

    • Pour corriger cette erreur, démarrez simplement l’application avec F5 et inscrivez un utilisateur. Cela crée un fichier aspnetdb.mdf.
  5. La fenêtre de sortie fournit des mises à jour à mesure que l’empaquetage progresse. Une fois terminée, la sortie contient un lien vers l’emplacement du package.
    Screenshot of the output window containing a link to the package location.

  6. Le fait de cliquer sur ce lien ouvre l’emplacement du package.
    Screenshot of MyStarterWAP screen that contains a package location U R L.

Génération du package à partir de MSBuild

Tous les paramètres que nous avons configurés ci-dessus sont stockés dans le fichier projet pour le waP. Vous pouvez maintenant générer un WAP ou une solution et avoir le package créé qui utilise les paramètres ci-dessus.

  1. Ouvrez une invite de commandes avec MSBuild dans le chemin d’accès (par exemple, l’invite de commandes VS, qui se trouve sous Démarrer -> Tous les programmes -> Microsoft Visual Studio 2010 -> Visual Studio Tools -> Invite de commandes Visual Studio (2010))

  2. Accédez à votre solution ou fichier projet.

  3. Si vous créez une solution, la commande se présente comme suit :

    msbuild {solution file} /p:CreatePackageOnPublish=true /p:DeployOnBuild=true
    

    Si vous générez le fichier projet, la commande se présente comme suit :

    msbuild {project file} /t:Package
    

    Si vous souhaitez générer une configuration autre que la configuration par défaut, ajoutez ce qui suit aux commandes ci-dessus :

    /p:Configuration={Configuration Name}
    

Déploiement du package à partir de l’invite de commandes

Maintenant que nous avons un package, nous pouvons le déployer à partir de l’invite de commandes. Nous allons le déployer en tant qu’administrateur.

Pour déployer le package en tant qu’administrateur à l’aide du service d’agent distant :

  1. Ouvrez une invite de commandes
  2. Accédez à l’emplacement où le package a été généré. Vous trouverez ces informations dans la sortie de build. Il y aura un lien dans la fenêtre Sortie dans l’interface utilisateur et, à partir de la ligne de commande, l’emplacement sera répertorié dans la section PackageUsingManifest de la sortie de build.
  3. Tapez {nom du projet}.deploy.cmd /t /m :{destinationServerName} /u :{administratorUser} /p :{AdministratorPassword} et appuyez sur Entrée.
  4. Si la publication de la piste a produit les résultats corrects, réexécutez la commande sans le paramètre /t.

Pour plus d’informations sur le déploiement à l’aide du fichier de commande, vous pouvez taper {nom du projet}.deploy.cmd pour ouvrir le fichier lisez-moi associé ou visiter l’article situé ici.

Déploiement du package à l’aide du Gestionnaire IIS

Nous pouvons également utiliser le gestionnaire IIS (Internet Information Services) pour installer notre package nouvellement créé.

Pour déployer le package à l’aide du gestionnaire des services Internet (inetmgr) :

  1. Exécuter inetmgr.exe

  2. Développez le nœud de serveur dans inetmgr.

  3. Développez le nœud Sites.

  4. Cliquez avec le bouton droit sur le site dans lequel vous souhaitez importer l’application.

  5. Sélectionnez Déployer -> Importer une application...
    Screenshot of the right-click menu over the Connections pane, with a focus on the Deploy drop-down and Import Application option.

  6. Entrez l’emplacement du package dans le Chemin d’accès du package : zone de texte.

  7. Cliquez sur Suivant.

  8. Vous serez maintenant à l’écran Sélectionner le contenu du package. En vérifiant et décochant les éléments, vous pouvez personnaliser ce qui est installé. Dans cette capture d’écran, vous voyez :

    • Il existe un élément pour créer l’application.
    • Contenu du fichier pour le site.
    • Deux éléments configurant les listes de contrôle d’accès sur le site.
    • Script de base de données.
      Screenshot of the Import Application Package screen with the Web Application option being highlighted in the Package contains field.
  9. Après avoir sélectionné les éléments souhaités à installer, cliquez sur Suivant.

  10. Vous devez maintenant vérifier les paramètres de package définis.

    • Chemin d’accès de l’application est l’emplacement d’installation de l’application, car j’ai décidé d’importer à partir du nœud de site web par défaut dans inetmgr qui sera la racine et je peux entrer un nom d’application dans la zone de texte à installer.
    • Le premier paramètre Chaîne de connexion est la base de données dans laquelle installer le script de package.
    • Le deuxième paramètre Chaîne de connexion est la valeur à placer dans le fichier web.config. Les deux paramètres différents vous permettent d’installer la base de données en tant qu’utilisateur plus privilégié et d’exécuter l’application avec un compte privilégié inférieur.
      Screenshot of the Import Application Package screen showing the Application Path and Connection String fields.
  11. Sélectionnez Suivant.

  12. Si l’application existe, vous êtes invité à supprimer des fichiers supplémentaires. Choisissez l’option souhaitée, puis cliquez sur Suivant.
    Screenshot of the Overwrite Existing Files screen with a focus on the Next option.

  13. Vous serez au niveau de la page récapitulative. Passez en revue les informations, puis cliquez sur Terminer.
    Screenshot of the Installation Progress and Summary page with a focus on the Finish option.

  14. Maintenant, dans inetmgr, vous pouvez cliquer sur le lien Parcourir sous Gérer l’application pour afficher votre site
    Screenshot of the Actions pane with a focus on the Browse link under the Manage Application section.