ASP.Net中处理web.config文件版本的最佳方法是什么?

3
我有一个ASP.Net网站(包含ASPX和ASMX页面),只有一个web.config文件。我们有开发版本和生产版本。随着时间的推移,开发和生产的web.config文件差异越来越大。
在源代码控制中保留两个版本的web.config文件的最佳实践是什么?我们使用Tortoise SVN,但我认为这并不重要。似乎我可以添加带有名称"web.config.prod"的生产web.config文件,然后当我们交接所有文件时,我们只需添加删除现有的web.config并将web.config.prod重命名为web.config的步骤。
这似乎有些hackish,尽管我确定它会起作用。Visual Studio中没有处理此问题的机制吗?这似乎是一个常见问题,但我没有找到任何关于此的问题(带有答案)。
3个回答

6

3
我们使用您所描述的确切方法,它非常有效。例如,我们有:
  • web.config(用于本地开发)
  • web.Dev.config(构建服务器,在提交时进行构建)
  • web.QC.config(测试环境)
  • web.Prod.config(生产环境)
每个环境的生成脚本只需删除web.config并重命名相应的配置文件即可。这样做可以使您轻松地控制所有内容,并快速进行差异比较,以查看不同环境之间的差异。在各个环境中更新配置值也更加容易...下一次将其推送到该环境时,它将获取新的配置信息。

1

Visual Studio 2010增加了一个名为XDT Transforms的新功能,它可以自动合并不同配置的多个Web.config文件。

然而,VS2008没有包含任何这样的功能。


VS 2008 没有这个功能?我们被困在2008年了。 - MusiGenesis
唯一的问题是,对于 web.config 文件的转换只会在“发布”网站时发生。它无法在构建时进行转换(使用或不使用 SlowCheetah [http://www.hanselman.com/blog/SlowCheetahWebconfigTransformationSyntaxNowGeneralizedForAnyXMLConfigurationFile.aspx])。 - George Mavritsakis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接