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.

Publication d'un site ASP .NET

On crée un nouveau profil de publication.

Création du profil de publication

On configure les paramètres de notre déploiement.

Configuration des paramètres de déploiement 1
Configuration des paramètres de déploiement 2

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.

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.

Début de la génération.

S’il n’y a pas d’erreurs, un message de fin s’affiche.

Fin de la génération.
Auteur : Daniel MINKO FASSINOU

Laisser un commentaire




Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.