影响所有版本的 VSTS 配置转换

VSTS Config Transform effecting all releases

我在 VSTS 上设置发布版本时遇到问题。 我有一个 Web 应用程序,它在每次构建时都部署到开发环境。 之后我们可以选择将该版本部署到生产或测试环境。

在进入 Prod 环境时,我想使用 web.release.config 来替换连接字符串、应用程序设置等变量。 这工作正常,但它适用于两个版本,DEV 和 PROD。

即如果我在 web.release.config 中提供正确的产品连接字符串,它会在第一个构建版本中部署到开发站点。

我怀疑是 Build 而不是 release 做的。

如何防止 web.release.config 应用于默认的 DEV 构建?

图片显示了发布配置,Dev 没有检查 xml 转换。

这是仅在 Web.Release.Config 文件中的转换。

如果您能协助发布以仅交换 PROD 的配置值,我们将不胜感激。

是 BUILD 而不是发行版吗???

使用 visual studio 15.3 版本的 2017 预览签入 VSTS 进行构建和发布。

此致, 杆

我假设您使用 Release 配置构建和部署 project/solution,因此 web.config 文件已经被转换。

您可以参考以下步骤处理此问题:

  1. 根据release配置新建Configuration(右击解决方案>Configuration Manager>点击Configuration DropdownList>New> Select Release in Copy settings from> Type Dev in Name
  2. 添加一个新的配置文件:web.Dev.config并为开发环境设置连接字符串
  3. 签入未决更改
  4. 编辑构建定义以使用 Dev 配置构建 project/solution
  5. 将web.release.config文件添加到web.config的相同级别(例如复制文件)并发布到工件

另一方面,您可以使用 XML 变量替换选项,这样,您不需要将 web.xxx.config 文件添加到 web.config 的同一级别:

  1. 编辑版本定义
  2. Select一个环境>点击...>配置变量
  3. 添加一个变量(名称:[ConnectionString名称,如DefaultConnection];值:[connectionString值,如Data source=xxx….]
  4. 检查 Azure 应用服务部署任务的 XML 变量替换选项
  5. 之后,相关的连接字符串值将在转换期间使用该环境变量进行更新。