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