2010-02-10 61 views
5

我使用VS 2008开发并使用CCNet构建,测试和部署我们的应用程序到登台服务器。我希望能够从web.config中删除debug="true"设置作为部署过程的一部分。在发布时从web.config中删除debug =“true”的好方法是什么?

我知道我可以只设置在machine.config中<deployment retail="true"/>,但我并不总是有那么多的访问的服务器,我们部署。我可以写一些代码去除web.config中的设置,但我想知道是否有办法通过msbuild或CCNet开箱即用。

回答

6

您可以使用MSBuild Community Tasks做:

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

或者你可以使用各种内置的Visual Studio的转换技术:

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

  • VS2005和2008 Web部署项目允许您将替代网络配置的部分(as Paddy linked to
  • 不能肯定,但MSDeploy已经解决此
  • 某种形式的能力南特有xmlpoke

NB这是 Setting debug=false in web.config as part of build的副本(我发现太晚了;已经把投票结束对这个)

0

我对CCNET的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> 
相关问题