VSTS 发布 - 在 web.config 中定义自定义变量并在发布时设置

VSTS Release - Define custom variable in web.config and set at release time

我正在尝试使用 VSTS Release 在发布时替换 appSetting。 网络上的所有 post 都指的是旧版本管理工具或指的是新工具但提到了替换令牌任务。这个任务不存在,所以我认为它是内置的。我已经设置了我的 web.config (MyVar) 并设置了我的环境变量,但没有任何东西被替换。

这是我的发布:

如果我很愚蠢,我深表歉意,但我无法解决这个问题,主要是因为文档已过时。

更新 2: 好吧,在几个人的帮助下,我现在已经走上了正确的轨道。 我添加了 Colin 的 ALM 标记化任务: https://marketplace.visualstudio.com/items?itemName=colinsalmcorner.colinsalmcorner-buildtasks

但是,它不起作用。

这里有几个屏幕截图: 请注意,在屏幕截图中,我知道它已被禁用。直到我能把它修好。

在下面的屏幕截图中,我看到只有几个位置可供选择标记化发生的位置。这看起来是否正确,或者我是否应该能够看到我想要替换令牌的 Web.Config?

正如我所说,标记化没有起作用。

我尝试了一些更改以使其正常工作。

更改1: 指向上图中的一个zip 文件。我的版本有效,但它没有将我的任何网站文件部署到 Azure 服务器。 NONE,完全没有。

更改2:指向另一个文件CustomerPortal.SetParams.xml

(注意:在这一点上我只是尝试随机文件来尝试让任何东西工作) 我的版本有效,但在令牌化方面没有任何进展。

这是我的日志的一部分:

如您所见,即使发布成功,我网站上的所有文件都不存在:

如有任何帮助,我们将不胜感激。

VSTS 发布管理中没有内置令牌替换。将值注入 web.config 是一项 deployment 任务,而 VSTS 发布管理与部署工具无关。

如果您需要在部署时将值注入配置文件(或以其他方式更改它们),您可以将其构建到部署脚本中。

目前没有用于替换令牌值的内置任务。您可以编写自定义脚本来处理此问题,也可以使用现有的第 3 方任务之一,例如 Replace Tokens 任务 Colin's ALM Corner Build & Release Tools .

如果您来自旧版本管理或 Web 部署任务,这可能会很棘手,这些任务会替换 Web.Release.config 中的令牌并替换正常 web.config 中的行。

我实现的解决方案是使用两个任务;一个任务是替换 Web.Release.config 的标记(不是 web.config 因为我想在本地 运行 没有麻烦),第二个任务是 'move' Web.Release.config归档您的 web.config。我在 windows 服务器上,因此您的实施可能需要调整,但过程是相似的。

重要提示:您的 Web.Release.config 应该是您的 web.config 的完整克隆,并带有标记。它不能像使用旧的 web 部署转换功能时那样保留部分配置。

使用cmd.exe,参数为:cmd /c move /y "YOUR_BUILD\drop\YOUR_PROJECT\Web.Release.config" "YOUR_BUILD\drop\YOUR_PROJECT\Web.config"