修改Web.Config以进行持续集成

时间:2010-03-09 18:00:57

标签: continuous-integration cruisecontrol.net

我正在使用CruiseControl.Net进行持续集成过程。使用ccnet我在发布模式下构建并将我的asp.net应用程序发布到服务器中。但是在发布期间,我无法在我的Web.Config中将debug =“true”更改为debug =“false”。我该怎么办?

3 个答案:

答案 0 :(得分:1)

您可以考虑使用Web部署项目(WDP),它可以作为Visual Studio构建配置的一部分运行。 WDP将处理诸如切换调试设置之类的事情,并且它也会更改任何特定于环境的web.config设置。这是一个WDP tutorial

答案 1 :(得分:0)

如果从ccnet调用msbuild脚本,则可以使用MSBuild社区任务项目中的XmlUpdate任务。

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

如果您有兴趣,我会记录我的构建过程here

答案 2 :(得分: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