2017-08-12 100 views
0

我正在寻找一些方法来有效地存储我们应用程序的配置。一个我们可以存储的地方,即我们可以在web.config文件中使用的连接字符串,或者甚至可以存储整个配置文件的方式。.NET应用程序的配置管理

也许有某种关键值存储解决方案可以帮助解决这个问题,在构建或使用TFS/Jenkins部署期间,我们可以指向那里并获取应该在web.config中使用的连接字符串。

我的主要观点是摆脱部署后使用的build/relase步骤或脚本中保留的环境特定连接字符串。只有一个有组织的地方可以将它们全部弄糟。

+0

web.config中的[_ConnectionStrings_](https://www.connectionstrings.com/store-connection-string-in-webconfig/)部分有什么问题? – Steve

+0

它只是关于如何以及它在哪里保存价值。当你有几个应用程序每个都得到开发时,QA和分段环境手动编辑它们,或者为每个构建/发布定义在不同的脚本中保留这些值是非常麻烦的。所以我想也许最好将所有环境的连接字符串存储在一个地方 - 可能是一些关键价值存储解决方案或类似的东西:))感谢您的回应! – Daveo

+0

嗨Daveo,在TFS中尝试了发布管理?如果我的回复有帮助或给出正确的方向。感谢您的投票或[标记为答案](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work),这也将有助于社区中的其他人。 –

回答

0

在Team Foundation Server中有一种称为发布管理的工具。

每个部署到每个环境可能有不同的变量。这可以在一个地方更新。在发布定义中,您可以设置环境变量并为每个环境设置它们。您也可以在许多应用程序中使用中央替换。

  • 定义一个更通用的部署过程,然后对每个环境轻松地进行自定义。例如,可以使用一个变量 来表示Web部署的连接字符串,并且此变量的值可以从一个环境更改为另一个环境的 。这些是自定义变量
  • 使用关于特定释放的上下文信息,环境工件,或剂,其中部署过程正在运行。例如,您的脚本可能需要访问构建的位置来下载它,或者访问
    的代理来创建临时文件。这些是默认变量

来源链接:Variables in Release Management

对于构建你与RM那么每个环境作为替换部署的一部分令牌替换你的开发condign数据。你可以用replace token task做到这一点,它会替换在释放变量设置的值,您可以通过配置编辑变量定义的任何环境变量:

enter image description here

有关如何使用变量的更多细节,你可以参考这个博客:Using environment variables for configuration with VSTS build and release


此外,Variable groups已在TFS/VSTS被引入到解决this need

这些是团队项目级别上的共享变量,可用于构建或发布定义。从发布定义引用变量组的功能已完成,现在可在TFS 2017和VSTS中使用。在近端功能中计划从构建定义引用变量组的能力。