Précompilation des fichiers aspx

Julien on sept 12th 2008

Dans une application asp.net, de base, les fichiers aspx ne sont pas compilés. Cette étape est réalisée par IIS lors du déploiement. En conséquence, toute erreur de syntaxe dans l'un de ces fichiers passera inaperçue lors de la compilation de la solution par le serveur d'intégration continue. Comme les vues sont rarement testées, on peut donc facilement se retrouver à déployer des fichiers contenants des erreurs de syntaxe... Aïe!

Pour éviter ce problème, il est possible d'appeler l'outil aspnet_compiler.exe directement depuis le fichier de build nant. Les quelques lignes suivantes auront donc pour effet de provoquer la compilation de l'ensemble des fichiers aspx de la solution et donc de rapporter toute erreur, magique!

  1.  
  2. <property name="build.dir" value="${build.base}/${project::get-name()}-${project.config}/"/>
  3. <property name="aspxbuild.dir" value="${build.dir}\aspx" />
  4. <property name="aspxvirtual.dir" value="${build.dir}\iis" />
  5.  
  6. <mkdir dir="${aspxbuild.dir}" />
  7. <mkdir dir="${aspxvirtual.dir}" />
  8. <copy todir="${aspxbuild.dir}">
  9. <fileset basedir="${aspx.dir}">
  10. <include name="**" />
  11. </fileset>
  12. </copy>
  13.  
  14. <mkiisdir dirpath="${aspxvirtual.dir}" vdirname="aspprecompile" />
  15. <exec program="C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe" useruntimeengine="true">
  16. <arg value="-p" />
  17. <arg value="${aspxbuild.dir}" />
  18. <arg value="-v" />
  19. <arg value="aspprecompile" />
  20. <arg value="${aspxvirtual.dir}" />
  21. </exec>
  22. <deliisdir vdirname="aspprecompile" />
  23. <delete dir="${aspxvirtual.dir}" />
  24.  

Remarque: il faut avoir installé iis et NantContrib sur le serveur de build !

Filed in Trucs et Astuces | 4 responses so far

4 Responses to “Précompilation des fichiers aspx”

  1. Romain Verdier sept 12th 2008 at 10:05 1

    Bonne pratique !

    Tu utilises quoi pour ton intégration continue ?

  2. Julien sept 12th 2008 at 02:34 2

    Actuellement je triche comme je suis le seul développeur de mon nouveau projet!
    Concrètement j’utilise le double click sur un fichier .bat qui lance la build :-) Dès que j’aurai quelques minutes, j’installerai cruise control. Mais pas de grosse urgence comme je suis seul.

  3. Romain Verdier sept 12th 2008 at 02:44 3

    Si tu as déjà ton script nant, alors essaye TeamCity : il te faudra juste 15 min, téléchargement compris. Vraiment.

    Je travail seul sur un petit projet actuellement, et même si c’est loin d’être indispensable, j’utilise TeamCity. Ca apporte un certain confort par rapport au bat qui lance le script nant. Il faut voir aussi que ça permet la collecte d’un certain nombre de données intéressantes (anciens artefacts, statistiques, historisation, évolution des tests, etc.)

  4. Julien sept 12th 2008 at 09:43 4

    Je vais essayer cela alors!
    C’est lourd en ressources? Tu le fais tourner sur une VM? ou sur un serveur?

Trackback URI | Comments RSS

Leave a reply