2010-03-09 71 views
2

我正在使用CruiseControl.Net進行持續集成過程。使用ccnet我建立併發布我的asp.net應用程序到發佈模式的服務器。但在發佈期間,我無法在我的Web.Config中將debug =「true」更改爲debug =「false」。我能做什麼?修改用於持續集成的Web.Config

回答

1

您可能會考慮使用可作爲Visual Studio構建配置的一部分運行的Web部署項目(WDP)。 WDP將處理諸如切換調試設置之類的事情,並且它還會更改任何特定於環境的web.config設置。這是一個WDP tutorial

0

如果您從ccnet調用msbuild腳本,則可以使用MSBuild社區任務項目中的XmlUpdate任務。

<XmlUpdate 
    XPath="/configuration/system.web/compilation/@debug" 
    XmlFileName="$(WebConfigFileFullPath)" 
    Value="false" /> 

我記錄了我的構建過程here如果您有興趣。

0

在上述Tom Brothers的回答中,我們使用MSBuild社區任務中的<XmlMassUpdate>任務來合併特定於部署的web.config,其中包含多個更改以應用於基本web.config以更改調試設置,連接字符串,日誌記錄配置等。因此,一個web項目包含web.config以及從開發機器運行所需的配置。還有web.Release.config文件,其中只包含我們需要應用於web.config以在生產Web服務器上生成配置的更改。

由於額外文件只包含適用於web.config的更改(增量),因此它不是很大。 Visual Studio在開發過程中忽略它,CruiseControl.Net在將它部署到Web服務器時將這些更改應用到web.config