修改 Web.Config 以进行持续集成
我正在使用 CruiseControl.Net 进行持续集成过程。我使用 ccnet 构建 ASP.NET 应用程序并将其发布到发布模式下的服务器中。但在发布期间,我无法在 Web.Config 中将 debug="true" 更改为 debug="false"。我能做些什么?
I am using CruiseControl.Net for my continuous integration process. Using ccnet I build and publish my asp.net application into a server in Release mode. But I am not able to change debug="true" to debug="false" in my Web.Config during publishing. What can I do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以考虑使用 Web 部署项目 (WDP),它可以作为 Visual Studio 构建配置的一部分运行。 WDP 将处理诸如切换调试设置之类的事情,并且它还会更改任何特定于环境的 web.config 设置。这是WDP 教程< /a>.
You might consider using a Web Deployment Project (WDP) which can be run as part of your visual studio build configuration. The WDP will handle things like toggling the debug setting and it change any environment-specific web.config settings as well. Here's a WDP tutorial.
如果您从 ccnet 调用 msbuild 脚本,则可以使用 MSBuild 社区任务项目中的 XmlUpdate 任务。
如果您有兴趣,我在此处记录了我的构建过程。
If you are calling a msbuild script from ccnet you could use the XmlUpdate task from the MSBuild Community Tasks Project.
I documented my build process here if you are interested.
扩展 Tom Brothers 上面的答案,我们使用 MSBuild 社区任务中的
任务来合并特定于部署的 web.config,其中包含要应用于基本web 的多个更改。 config
来更改调试设置、连接字符串、日志记录配置等。因此,Web 项目包含web.config
以及从开发计算机运行所需的配置。还有web.Release.config
文件,其中仅包含我们需要应用于 web.config 以在生产 Web 服务器上生成配置的更改。由于额外文件仅包含应用于
web.config
的更改(增量),因此它不是很大。 Visual Studio 在开发过程中会忽略它,而 CruiseControl.Net 在部署到 Web 服务器时会将更改应用到web.config
。Expanding on Tom Brothers' answer above, we use the
<XmlMassUpdate>
task in MSBuild Community Tasks to merge a deployment-specific web.config that contains multiple changes to apply to the baseweb.config
to change the debug setting, connection strings, logging configuration, etc. So a web project containsweb.config
with the configuration necessary to run from the development machines. There's alsoweb.Release.config
file which contains only the changes that we need to apply to web.config to produce the configuration on the production web server.Since the extra file only contains changes (deltas) to apply to
web.config
, it's not very big. Visual Studio ignores it during development, and CruiseControl.Net applies the changes toweb.config
when it gets deployed to the web server.