2010-02-10 14 views
5

Utilizo VS 2008 para desarrollar y uso CCNet para construir, probar y desplegar nuestras aplicaciones en un servidor intermedio. Me gustaría poder eliminar la configuración debug="true" de web.config como parte del proceso de implementación.¿Cuál es una buena manera de eliminar debug = "true" de web.config on publish?

Sé que podría simplemente configurar <deployment retail="true"/> en machine.config, pero no siempre tengo tanto acceso a los servidores que implementamos. Podría escribir un poco de código para quitar la configuración del web.config, pero me preguntaba si había una manera de hacerlo de inmediato con msbuild o CCNet.

Respuesta

6

Puede utilizar el MSBuild Community Tasks y hacer:

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

O puede utilizar varios incorporado en las técnicas de estudio de transformación visuales:

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

  • VS2005 y de implementación Web 2008 proyectos le permiten sustituir partes de un web.config (as Paddy linked to)
  • No es seguro, pero MSDeploy tiene algún tipo de capacidad en torno a este
  • NAnt tiene un xmlpoke

Nota: este es un duplicado de Setting debug=false in web.config as part of build (que encontré demasiado tarde; han puesto un voto para cerrar sobre esto)

0

Mi solución para CCNET con la transformación 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> 
Cuestiones relacionadas