【问题标题】:Handling Configuration For Multiple Deployments处理多个部署的配置
【发布时间】:2014-09-19 21:09:14
【问题描述】:

我们仍在尝试确定最佳的前进方式,目前我们有一个带有 Windows 服务的 asp.net MVC 网站,该网站部署在我们管理的专用服务器以及他们管理的一些客户基础架构上。我们正在将应用程序迁移到 Azure,尽管它仍需要支持标准的 Windows 部署。我们已经处理了这个问题,但问题是配置文件。

我们目前有根据机器名称和配置的客户加载的自定义 Xml 文件,因此如果机器称为 machine-01,它会转到名为 machine-01 的文件夹,如果客户名称是 customer-01,它会尝试在该文件夹中为 customer-01.config 查找文件。这对我们来说很有效,因为每台开发机器都有自己的配置文件,我们可以为客户创建一个配置文件并将其保存在 TFS 中。

这个问题有两个方面:

  1. 我们是手动复制配置文件,而不是自动部署。
  2. 生产凭据位于 TFS 中,可供任何开发人员使用,但如果他们将错误的设置复制到自己的文件中,则不太可能运行生产凭据。

我们已经开始研究配置转换,但我们没有使用 web.config/app.config,因为我们是从自定义 Xml 文件加载这些。我们可以在 Visual Studio 中对自定义 Xml 文件进行配置转换吗?

我也不确定我是否对这个解决方案感到满意,因为它仍然让 TFS 中的生产凭据可供所有人使用,并且仍然存在编译错误配置和在本地运行的风险。

虽然目前我们只有四个独立的部署,但更多的客户似乎希望在他们自己的基础架构上托管,因为该产品通过自定义可插拔项目与他们的系统进行了相当多的集成。

我的问题是人们如何处理这些类型的部署,其中有多个配置文件,特别是从尝试向 TFS/其他开发人员隐藏生产凭据以降低开发中使用生产凭据的风险的角度,以及从角度来看自动部署到 azure 和自托管窗口。

我的研究是提出 2006/2008 年的文章,我必须相信现在有更好的方法。我们也将 Visual Studio Online 用于 TFS。

【问题讨论】:

    标签: deployment configuration tfs


    【解决方案1】:

    过去我使用XmlPreprocess 成功。这个想法是标记您的配置文件,以便可以处理它们并且用来自诸如 Excel 文件之类的源的值替换宏。您还拥有资源并根据您的特定需求调整工具。

    【讨论】:

      【解决方案2】:

      我希望使用 Visual Studio 的发布管理。它旨在做您正在谈论的事情并保持权威的可追溯性。您可以通过多个环境创建发布管道,并自动处理每个环境的所有变量。

      使用此模型,您有一个用于具有本地值的开发人员的 Web.config 和一个用于 RM 的具有可替换变量的 Web.config。然后在部署时处理所有事情。

      【讨论】:

        【解决方案3】:

        我最近创建了一个开源项目,用于处理每个环境的基于模板的配置文件。

        见:https://contemplate.codeplex.com/

        您可以在一个解决方案中拥有多个配置文件,将设置保存在每个环境的一个文件中,并在需要时生成配置文件。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-12-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-26
          • 2014-09-17
          相关资源
          最近更新 更多