2010-02-10 5 views
5

J'utilise VS 2008 pour développer et j'utilise CCNet pour construire, tester et déployer nos applications sur un serveur de transfert. Je souhaiterais pouvoir supprimer le paramètre debug="true" de web.config dans le cadre du processus de déploiement.Quelle est une bonne façon de supprimer debug = "true" de web.config lors de la publication?

Je sais que je peux simplement définir <deployment retail="true"/> dans machine.config, mais je n'ai pas toujours accès aux serveurs sur lesquels nous déployons. Je pourrais juste écrire un peu de code pour enlever le paramètre du web.config, mais je me demandais s'il y avait un moyen de le faire avec msbuild ou CCNet.

Répondre

6

Vous pouvez utiliser le MSBuild Community Tasks et faire:

<XmlUpdate 
     XmlFileName="web.config" 
     XPath="//configuration/system.web/compilation/@debug" 
     Value="false"/> 

Ou vous pouvez utiliser différents intégrés dans les techniques de transformation Visual Studio:

<configuration xmlns:xdt="...">
<compilation xdt:Transform="RemoveAttributes(debug,batch)">
</compilation>
</configuration>

  • VS2005 et 2008 des projets de déploiement Web vous permettent de substituer des parties d'une configuration Web (as Paddy linked to)
  • Pas certain, mais MSDeploy a une certaine forme de capacité autour de cette
  • NAnt a une xmlpoke

NB ceci est un duplicata de Setting debug=false in web.config as part of build (que j'ai trouvé trop tard; j'ai mis un vote pour fermer ceci)

0

Ma solution pour CCNET avec la transformation web.config:

<tasks> 
    <msbuild> 
     <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable> 
     <workingDirectory>E:\VersionesCC\Trunk_4\SBatz\Gertakariak_Orokorrak\GertakariakMS\Web</workingDirectory> 
     <projectFile>GertakariakMSWeb2.vbproj</projectFile> 
     <targets>Build</targets> 
     <timeout>600</timeout> 
     <logger>C:\Program Files\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger> 
     <buildArgs> 
      /noconsolelogger /p:Configuration=Release /v:diag 
      /p:DeployOnBuild=true 
      /p:AutoParameterizationWebConfigConnectionStrings=false 
      /p:DeployTarget=Package 
      /p:_PackageTempDir=E:\Aplicaciones\GertakariakMS2\Web 
     </buildArgs> 
     </msbuild> 
</tasks> 
Questions connexes