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

标签 release-management ms-release-management

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

enter image description here

这是我的版本:
enter image description here

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

更新 2:好的,在得到一些人的帮助后,我现在正处于正确的轨道上。
我添加了 Colin 的 ALM 标记化任务:
https://marketplace.visualstudio.com/items?itemName=colinsalmcorner.colinsalmcorner-buildtasks

但是,它不起作用。

以下是几个屏幕截图:
enter image description here
请注意,在屏幕截图中,我知道它已禁用。这只是直到我能把它修好。

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

enter image description here

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

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

变化 1:指向上方屏幕截图中的 zip 文件。我的版本有效,但它没有将我的任何网站文件部署到 Azure 服务器。一个都没有。

变化 2:指向另一个文件 CustomerPortal.SetParams.xml

(注意:此时我只是在尝试随机文件来尝试使任何工作都能正常工作)
我的版本成功了,但在标记化方面没有发生任何事情。

这是我的日志的一部分:
enter image description here

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

enter image description here

任何帮助将不胜感激。

最佳答案

如果您来自较旧的 Release Management 或 Web Deploy 任务,这些任务将替换来自 Web.Release.config 的 token 并替换普通 web.config 中的行,这可能会很棘手。

我实现的解决方案是使用两个任务;一个任务是替换 Web.Release.config 的 token (不是 web.config,因为我想在本地运行而没有麻烦),第二个任务是将 Web.Release.config 文件“移动”到您的 web.config 上。我在 Windows 服务器上,所以你的实现可能需要调整,但过程是相似的。

重要信息 :您的 Web.Release.config 应该是您的 web.config 的完整克隆,并带有适当的 token 。它不能像使用旧的 Web 部署转换功能时那样保持部分配置。

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

enter image description here

enter image description here

关于release-management - VSTS 发布 - 在 web.config 中定义自定义变量并在发布时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35639687/

相关文章:

visual-studio - Visual Studio 的发布管理 - 管道如何与 DEV/QA/Production Branches 一起工作?

tfs - 如何将单元测试 .dll 包含在 TFS Build 中,以包含在 TFS 发布管理中?

java - 从不寻常的 svn 目录结构迁移到 maven?

git - 最佳(在您看来)GIT 工作流程,适用于按需发布的情况(在大多数情况下一次 1-2 张票)

powershell - 如何在 vNext 版本模板的部署日志中获取 powershell 脚本输出?

tfs - 是否可以在 TFS 2017 中将变量从构建传递到发布?

azure-devops - 构建和发布错误 CS0234 : The type or namespace name 'Security' does not exist in the namespace 'Microsoft' (are you missing an assembly reference? )

release-management - 部署队列不显示我的默认本地构建代理

jenkins - 在 Jenkins 中手动提升管道结果

tfs - 我们可以从 TFS 生成发行说明吗