Ce qu’il y a de merveilleux avec l’informatique, c’est qu’on peut automatiser certaines tâches répétitives chronophages.
Les scripts font partie des outils qui permettent cette automatisation. Aujourd’hui, je vais vous montrer comment automatiser le déploiement d’un site web ASP .NET en ligne de commande.
Dans cet article, j’utilise Visual Studio 2017, mais je pense que ça ne doit pas être très différent avec les versions plus récentes.
Lorsqu’on veut déployer un site, on procède la sorte:
Clic droit sur le site. Publier l’application web.
On crée un nouveau profil de publication.
On configure les paramètres de notre déploiement.
Je choisis de déployer le site vers un dossier D:\DossierDePublication et d’utiliser la configuration Release – Any CPU. Ici mettre les paramètres correspondant à son environnement.
Cliquer sur Publier pour enregistrer le fichier de config. Puis fermer et enregistrer le profil.
Le fichier est enregistré dans le dossier App_Data\PublishProfiles.
Son extension est .pubxml. L’ouvrir pour voir son contenu. Dans mon cas, j’obtiens ceci:
<!--?xml version="1.0" encoding="utf-8"?--> <!-- Ce fichier est utilisé par le processus de publication/package de votre projet web. Vous pouvez personnaliser le comportement de ce processus en modifiant ce fichier MSBuild. Pour en savoir plus à ce sujet, visitez https://go.microsoft.com/fwlink/?LinkID=208121. --> <project toolsversion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <propertygroup> <webpublishmethod>FileSystem</webpublishmethod><br> <lastusedbuildconfiguration>Release</lastusedbuildconfiguration><br> <lastusedplatform>Any CPU</lastusedplatform><br> <siteurltolaunchafterpublish><br> <launchsiteafterpublish>True</launchsiteafterpublish><br> <excludeapp_data>False</excludeapp_data> <publishurl>D:\DossierDePublication</publishurl> <deleteexistingfiles>False</deleteexistingfiles><br> </siteurltolaunchafterpublish></propertygroup> </project>
Ça correspond ce que j’ai configuré plus haut.
Ajoutons la tâche AspNetCompiler après la balise fermante .
<target name="PrecompileWeb"> <aspnetcompiler virtualpath="/Monsupersite" physicalpath="D:\Sources\Monsite" targetpath="D:\DossierDePublication" force="true" debug="false" fixednames="True"> </aspnetcompiler><br> </target><br>
Configurer les attributs en fonction de son projet.
Quelques attributs importants:
- VirtualPath : Chemin virtuel de l’application à compiler
- PhysicalPath: Spécifie le chemin physique de l’application à compiler
- TargetPath: Spécifie le chemin physique à l’emplacement dans lequel l’application est compilée
La liste complète est ici https://docs.microsoft.com/fr-fr/visualstudio/msbuild/aspnetcompiler-task?view=vs-2019.
Le fichier complet ressemble à ça:
<?xml version="1.0" encoding="utf-8"?> <!-- Ce fichier est utilisé par le processus de publication/package de votre projet web. Vous pouvez personnaliser le comportement de ce processus en modifiant ce fichier MSBuild. Pour en savoir plus à ce sujet, visitez https://go.microsoft.com/fwlink/?LinkID=208121. --> <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <WebPublishMethod>FileSystem</WebPublishMethod> <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> <LastUsedPlatform>Any CPU</LastUsedPlatform> <SiteUrlToLaunchAfterPublish /> <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish> <PrecompileBeforePublish>True</PrecompileBeforePublish> <EnableUpdateable>False</EnableUpdateable> <DebugSymbols>False</DebugSymbols> <WDPMergeOption>DonotMerge</WDPMergeOption> <ExcludeApp_Data>True</ExcludeApp_Data> <publishUrl>D:\DossierDePublication</publishUrl> <DeleteExistingFiles>True</DeleteExistingFiles> </PropertyGroup> <Target Name="PrecompileWeb"> <AspNetCompiler VirtualPath="/Monsupersite" PhysicalPath="D:\Sources\Monsite" TargetPath="D:\DossierDePublication" Force="true" Debug="false" FixedNames="True" /> </Target> </Project>
Pour déployer son site, il ne reste qu’à appeler MS Build en lui passant en paramètre notre fichier. Le chemin de MS Build : C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe.
Ça donne : C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\chemin_vers_ma_config.xml.
La génération commence.
S’il n’y a pas d’erreurs, un message de fin s’affiche.
Laisser un commentaire