2010-02-10 41 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> 
相關問題