2010-03-09 111 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