我正在尝试使用VSTS版本在发布时替换appSetting。 Web上的所有帖子都参考旧版本管理工具或参考新版本,但提及替换令牌任务。这个任务不存在所以我认为它是内置的。我已经设置了我的web.config( MyVar )并设置我的环境变量但没有任何内容被替换。
如果我是愚蠢的,我道歉但我无法解决这个问题,主要原因是过时的文档。
更新2:好的,所以经过几个人的帮助后,我现在正走在正确的轨道上。 我添加了Colin的ALM令牌化任务: https://marketplace.visualstudio.com/items?itemName=colinsalmcorner.colinsalmcorner-buildtasks
但是,它不起作用。
以下是几个屏幕截图: 请注意,在屏幕截图中,我知道它已被禁用。这只是我可以修复它。
在下面的屏幕截图中,我看到只有几个位置可以选择令牌化发生的位置。这看起来是否正确,或者我是否应该能够看到我想要替换令牌的Web.Config?
正如我所说,令牌化无效。
我尝试了一些改变,试图让它发挥作用。
更改1:指向上面的acreen镜头中的zip文件。我的版本有效,但它没有将我的任何网站文件部署到Azure服务器。完全没有。
更改2 指向另一个文件CustomerPortal.SetParams.xml
(注意:此时我只是尝试随机文件尝试获取任何工作) 我的发布有效,但在令牌化方面没有任何进展。
任何帮助都会受到赞赏。
答案 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"