【问题标题】:Modify Web.Config for Continuous Integration修改 Web.Config 以实现持续集成
【发布时间】:2010-03-09 18:00:57
【问题描述】:

我将 CruiseControl.Net 用于我的持续集成过程。使用 ccnet 我构建我的 asp.net 应用程序并将其发布到发布模式的服务器中。但我无法在发布期间在我的 Web.Config 中将 debug="true" 更改为 debug="false"。我能做什么?

【问题讨论】:

    标签: continuous-integration cruisecontrol.net


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

        扩展上面汤姆兄弟的回答,我们使用 MSBuild 社区任务中的 &lt;XmlMassUpdate&gt; 任务来合并特定于部署的 web.config,其中包含多个更改以应用于基础 web.config 以更改调试设置、连接字符串、日志记录配置等。因此,Web 项目包含 web.config 以及从开发机器运行所需的配置。还有 web.Release.config 文件,其中仅包含我们需要应用于 web.config 以在生产 Web 服务器上生成配置的更改。

        由于额外文件仅包含应用于web.config 的更改(增量),因此它不是很大。 Visual Studio 在开发过程中会忽略它,CruiseControl.Net 在将其部署到 Web 服务器时会将更改应用到 web.config

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多