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

时间:2016-02-25 22:29:02

标签: release-management ms-release-management

我正在尝试使用VSTS版本在发布时替换appSetting。 Web上的所有帖子都参考旧版本管理工具或参考新版本,但提及替换令牌任务。这个任务不存在所以我认为它是内置的。我已经设置了我的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 请注意,在屏幕截图中,我知道它已被禁用。这只是我可以修复它。

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

enter image description here

正如我所说,令牌化无效。

我尝试了一些改变,试图让它发挥作用。

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

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

(注意:此时我只是尝试随机文件尝试获取任何工作) 我的发布有效,但在令牌化方面没有任何进展。

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

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

enter image description here

任何帮助都会受到赞赏。

3 个答案:

答案 0 :(得分:4)

VSTS版本管理中没有内置令牌替换。将值注入web.config是部署任务,VSTS版本管理与部署工具无关。

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

答案 1 :(得分:4)

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

答案 2 :(得分:2)

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

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

重要:您的Web.Release.config应该是您的web.config的完整克隆,其中包含令牌。它不能像使用旧的Web部署转换功能时那样保持部分配置。

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

enter image description here

enter image description here

相关问题