我有一个ASP.Net网站(ASPX和ASMX页面),其中包含一个web.config文件。我们有开发版和生产版。随着时间的推移,用于开发和生产的web.config文件已大大分化。
在源代码管理中保留两个版本的web.config的最佳做法是什么(我们使用Tortoise SVN,但我认为这不重要)?看起来我可以添加名为“web.config.prod”的生产web.config文件,然后当我们转换所有文件时,我们只需添加删除现有web.config和重命名web.config的步骤。 .prod到web.config。
虽然我确信它会起作用,但这看起来很糟糕。是否有一些机制来处理Visual Studio内置的内容?这似乎是一个常见的问题,但我没有找到任何关于此的问题(答案)。
答案 0 :(得分:5)
我在构建时使用nant。在SVN上,我有一个web.config.template,其中包含使用属性文件扩展的参数。每个环境都有自己的属性文件,其中包含不同的值。
简而言之,我没有SVN上的web.config,而是一个模板。
像这样的东西
http://www.cptloadtest.com/2007/09/22/Managing-Multiple-Environment-Configurations-Through-NAnt.aspx
答案 1 :(得分:3)
我们使用您描述的确切方法,效果很好,例如我们有:
每个环境的构建脚本只删除web.config并重命名它所在的位置。通过这种方式,您可以轻松地对所有这些进行控制,并且可以非常快速地进行差异,并查看环境之间可能存在的差异。全面更新配置值也更容易......下次推送到该环境时,它将获得新的配置。
答案 2 :(得分:1)
Visual Studio 2010添加了一项名为XDT Transforms的新功能,该功能可自动组合多个Web.config文件以用于不同的配置。
但是,VS2008不包含任何此类功能。