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.
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 MainContent
Content
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.
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.
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.
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.
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 DeploypublishProfile
.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.)
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, laAllowUntrustedCertificate
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.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.
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.
Ouvrez l’invite de commandes développeur pour VS2012.
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.
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.
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.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour