Share via


déploiement web ASP.NET à l’aide de Visual Studio : déploiement en ligne de commande

par Tom Dykstra

Télécharger le projet de démarrage

Cette série de tutoriels vous montre comment déployer (publier) une application web ASP.NET sur Azure App Service Web Apps ou sur un fournisseur d’hébergement tiers, à l’aide de Visual Studio 2012 ou Visual Studio 2010. Pour plus d’informations sur la série, consultez le premier tutoriel de la série.

Vue d’ensemble

Ce tutoriel vous montre comment appeler le pipeline de publication web Visual Studio à partir de la ligne de commande. Cela est utile pour les scénarios où vous souhaitez automatiser le processus de déploiement au lieu de le faire manuellement dans Visual Studio, généralement à l’aide d’un système de gestion de version de code source.

Apporter une modification au déploiement

Actuellement, la page À propos de affiche le code du modèle.

À propos de la page avec le code du modèle

Vous le remplacerez par du code qui affiche un résumé de l’inscription des étudiants.

Ouvrez la page About.aspx , supprimez tout le balisage à l’intérieur de l’élément MainContentContent et insérez le balisage suivant à sa place :

<h2>Student Body Statistics</h2>
    <asp:ObjectDataSource ID="StudentStatisticsObjectDataSource" runat="server" TypeName="ContosoUniversity.BLL.SchoolBL"
        SelectMethod="GetStudentStatistics" DataObjectTypeName="ContosoUniversity.DAL.EnrollmentDateGroup">
    </asp:ObjectDataSource>
    <asp:GridView ID="StudentStatisticsGridView" runat="server" AutoGenerateColumns="False"
        DataSourceID="StudentStatisticsObjectDataSource">
        <Columns>
            <asp:BoundField DataField="EnrollmentDate" DataFormatString="{0:d}" HeaderText="Date of Enrollment"
                ReadOnly="True" SortExpression="EnrollmentDate" />
            <asp:BoundField DataField="StudentCount" HeaderText="Students" ReadOnly="True"
                SortExpression="StudentCount" />
        </Columns>
    </asp:GridView>

Exécutez le projet et sélectionnez la page À propos de.

Page About

Déployer sur Test à l’aide de la ligne de commande

Vous ne déployez pas une autre modification de base de données. Désactivez donc le déploiement de base de données dbDacFx pour la base de données aspnet-ContosoUniversity. Ouvrez l’Assistant Publication web et, dans chacun des trois profils de publication, désactivez la zone Mettre à jour la base de données case activée sous l’onglet Paramètres.

Dans la page De démarrage de Windows 8, recherchez Invite de commandes développeur pour VS2012.

Cliquez avec le bouton droit sur l’icône d’invite de commandes développeur pour VS2012 , puis cliquez sur Exécuter en tant qu’administrateur.

Entrez la commande suivante à l’invite de commandes, en remplaçant le chemin d’accès au fichier solution par le chemin d’accès à votre fichier de solution :

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Test

MSBuild génère la solution et la déploie dans l’environnement de test.

Sortie de ligne de commande

Ouvrez un navigateur et accédez à http://localhost/ContosoUniversity, puis cliquez sur la page À propos de pour vérifier que le déploiement a réussi.

Si vous n’avez pas créé d’étudiants dans le test, une page vide s’affiche sous l’en-tête Statistiques du corps des étudiants . Accédez à la page Étudiants , cliquez sur Ajouter un étudiant et ajoutez des étudiants, puis revenez à la page À propos de pour afficher les statistiques des étudiants.

Capture d’écran montrant les statistiques du corps des étudiants sur la page À propos de.

Options de ligne de commande clés

La commande que vous avez entrée a transmis le chemin du fichier solution et deux propriétés à MSBuild :

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true 
/p:PublishProfile=Test

Déploiement de la solution par rapport au déploiement de projets individuels

La spécification du fichier de solution entraîne la génération de tous les projets de la solution. Si vous avez plusieurs projets web dans la solution, le comportement MSBuild suivant s’applique :

  • Les propriétés que vous spécifiez sur la ligne de commande sont passées à chaque projet. Par conséquent, chaque projet web doit avoir un profil de publication avec le nom que vous spécifiez. Si vous spécifiez /p:PublishProfile=Test, chaque projet web doit avoir un profil de publication nommé Test.
  • Vous pouvez publier un projet quand un autre projet n’est même pas généré. Pour plus d’informations, consultez échec du thread stackoverflow MSBuild avec deux packages.

Si vous spécifiez un projet individuel au lieu d’une solution, vous devez ajouter un paramètre qui spécifie la version de Visual Studio. Si vous utilisez Visual Studio 2012, la ligne de commande est similaire à l’exemple suivant :

msbuild C:\ContosoUniversity\ContosoUniversity\ContosoUniversity.csproj /p:DeployOnBuild=true /p:PublishProfile=Test /p:VisualStudioVersion=11.0

Le numéro de version de Visual Studio 2010 est 10.0. Pour plus d’informations, consultez Compatibilité des projets Visual Studio et VisualStudioVersion sur le blog de Sayed Hashimi.

Spécification du profil de publication

Vous pouvez spécifier le profil de publication par nom ou par le chemin d’accès complet au fichier .pubxml , comme illustré dans l’exemple suivant :

msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=C:\ContosoUniversity\ContosoUniversity\Properties\PublishProfiles\Test.pubxml

Méthodes de publication web prises en charge pour la publication en ligne de commande

Trois méthodes de publication sont prises en charge pour la publication en ligne de commande :

  • MSDeploy - Publiez à l’aide de Web Deploy.
  • Package - Publiez en créant un package Web Deploy. Vous devez installer le package séparément de la commande MSBuild qui le crée.
  • FileSystem - Publiez en copiant des fichiers dans un dossier spécifié.

Spécification de la configuration de build et de la plateforme

La configuration et la plateforme de build doivent être définies dans Visual Studio ou sur la ligne de commande. Les profils de publication incluent des propriétés nommées LastUsedBuildConfiguration et LastUsedPlatform, mais vous ne pouvez pas définir ces propriétés pour déterminer la façon dont le projet est généré. Pour plus d’informations, consultez MSBuild : comment définir la propriété de configuration sur le blog de Sayed Hashimi.

Déployer vers un environnement intermédiaire

Pour effectuer un déploiement sur Azure, vous devez ajouter le mot de passe à la ligne de commande. Si vous avez enregistré le mot de passe dans le profil de publication dans Visual Studio, il a été stocké sous forme chiffrée dans votre fichier .pubxml.user . Ce fichier n’est pas accessible par MSBuild lorsque vous effectuez un déploiement de ligne de commande. Vous devez donc passer le mot de passe dans un paramètre de ligne de commande.

  1. Copiez le mot de passe dont vous avez besoin à partir du fichier .publishsettings que vous avez téléchargé précédemment pour le site web de préproduction. Le mot de passe est la valeur de l’attribut userPWD pour l’élément Web Deploy publishProfile .

    Mot de passe web deploy

  2. Dans la page De démarrage de Windows 8, recherchez Invite de commandes développeur pour VS2012, puis cliquez sur l’icône pour ouvrir l’invite de commandes. (Vous n’avez pas besoin de l’ouvrir en tant qu’administrateur cette fois, car vous ne déployez pas sur IIS sur l’ordinateur local.)

  3. Entrez la commande suivante à l’invite de commandes, en remplaçant le chemin d’accès au fichier de solution par le chemin d’accès à votre fichier de solution et le mot de passe par votre mot de passe :

    msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Staging /p:Password=hdNSWsbuqno7J5uqnwKafwlfNPt1DSco7J5uqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
    

    Notez que cette ligne de commande inclut un paramètre supplémentaire : /p:AllowUntrustedCertificate=true. Au fur et à mesure que ce tutoriel est en cours d’écriture, la AllowUntrustedCertificate propriété doit être définie lorsque vous publiez sur Azure à partir de la ligne de commande. Lorsque le correctif de ce bogue est publié, vous n’avez pas besoin de ce paramètre.

  4. Ouvrez un navigateur et accédez à l’URL de votre site intermédiaire, puis cliquez sur la page À propos de pour vérifier que le déploiement a réussi.

    Comme vous l’avez vu précédemment pour l’environnement de test, vous devrez peut-être créer des étudiants pour afficher des statistiques sur la page À propos de .

Déployer en production

Le processus de déploiement en production est similaire au processus de préproduction.

  1. Copiez le mot de passe dont vous avez besoin à partir du fichier .publishsettings que vous avez téléchargé précédemment pour le site web de production.

  2. Ouvrez l’invite de commandes développeur pour VS2012.

  3. Entrez la commande suivante à l’invite de commandes, en remplaçant le chemin d’accès au fichier de solution par le chemin d’accès à votre fichier de solution et le mot de passe par votre mot de passe :

    msbuild C:\ContosoUniversity\ContosoUniversity.sln /p:DeployOnBuild=true /p:PublishProfile=Production /p:Password=hdNSWsbuqnwKafwlo7J5uqnwKafwlfNPt1DSqnwKafwlfNPt1DSpKHuYgCco7J5 /p:AllowUntrustedCertificate=true
    

    Pour un site de production réel, s’il y a également eu une modification de base de données, vous devez généralement copier le fichier app_offline.htm sur le site avant le déploiement et le supprimer une fois le déploiement réussi.

  4. Ouvrez un navigateur et accédez à l’URL de votre site intermédiaire, puis cliquez sur la page À propos de pour vérifier que le déploiement a réussi.

Résumé

Vous avez maintenant déployé une mise à jour d’application à l’aide de la ligne de commande.

Capture d’écran montrant la page À propos de l’affichage des statistiques du corps des étudiants.

Dans le tutoriel suivant, vous verrez un exemple d’extension du pipeline de publication web. L’exemple vous montre comment déployer des fichiers qui ne sont pas inclus dans le projet.