【问题标题】:What's the best way to handle web.config file versions in ASP.Net?在 ASP.Net 中处理 web.config 文件版本的最佳方法是什么?
【发布时间】:2010-04-14 02:56:04
【问题描述】:

我有一个带有单个 web.config 文件的 ASP.Net 网站(ASPX 和 ASMX 页面)。我们有一个开发版本和一个生产版本。随着时间的推移,用于开发和生产的 web.config 文件出现了很大差异。

将两个版本的 web.config 保留在源代码控制中的最佳做法是什么(我们使用 Tortoise SVN,但我认为这并不重要)?似乎我可以添加名称为“web.config.prod”的生产 web.config 文件,然后当我们翻转所有文件时,我们只需添加删除现有 web.config 并重命名 web.config 的步骤.prod 到 web.config。

这看起来很骇人听闻,尽管我确信它会起作用。是不是有一些机制来处理这个内置到 Visual Studio 中?这似乎是一个常见问题,但我没有找到任何关于此的问题(有答案)。

【问题讨论】:

    标签: c# asp.net web-config


    【解决方案1】:

    我使用 nant 进行构建。在 SVN 上,我有一个 web.config.template,其中包含使用属性文件扩展的参数。每个环境都有自己的具有不同值的属性文件。

    所以简而言之,我在 SVN 上没有 web.config,而是一个模板。

    类似的东西

    http://www.cptloadtest.com/2007/09/22/Managing-Multiple-Environment-Configurations-Through-NAnt.aspx

    NAnt:http://nant.sourceforge.net/

    【讨论】:

      【解决方案2】:

      我们使用您描述的确切方法,效果很好,例如我们有:

      • web.config(用于本地开发)
      • web.Dev.config(构建服务器,在签入时构建)
      • web.QC.config(测试环境)
      • web.Prod.config(生产)

      每个环境的构建脚本只是删除 web.config 并在其位置重命名相应的。这样做可以让您轻松地对所有这些进行源代码控制,并非常快速地进行比较,看看环境之间可能有什么不同。全面更新配置值也容易得多...下次将其推送到该环境时,它将获得新配置。

      【讨论】:

        【解决方案3】:

        Visual Studio 2010 添加了一个名为XDT Transforms 的新功能,该功能会自动将多个 Web.config 文件合并为不同的配置。

        但是,VS2008 不包含任何此类功能。

        【讨论】:

        • VS 2008 没有这个?我们被困在 2008 年。
        • 唯一的问题是 web.config 文件的转换仅在您“发布”站点时发生。它无法在构建时转换(有或没有 SlowCheetah [hanselman.com/blog/…
        猜你喜欢
        • 2015-02-03
        • 2012-09-18
        • 2018-12-03
        • 1970-01-01
        • 2018-09-19
        • 2011-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多