具有默认释放变量的VSTS JSON变量替换

时间:2017-09-28 18:35:12

标签: json azure-devops appsettings azure-pipelines-release-pipeline

TL; DR

我有什么方法可以在VSTS中使用JSON variable substitutiondefault Release variables吗?

描述

使用VSTS,我可以使用JSON变量替换在发布时设置appsettings.json文件中的值。例如,使用appsettings.json文件,如下所示:

{    
  "ConnectionStrings": {
    "DM_ADJ": "placeholder",
    "DM_SALES": "placeholder"
  },
  // And so on.  Placeholders get replaced
}

我可以在VSTS中定义名为ConnectionStrings.DM_ADJ的Release变量,我在那里提供的值将替换相应JSON行中的"placeholder"

现在,我还想在我的应用程序配置中使用一些默认的Release变量。例如,有一些名为Release.DefinitionNameRelease.DefinitionId的默认版本变量。我认为我可以将它们替换为如下所示的appsettings.json配置部分,但不幸的是,当发布完成时,"placeholder"字符串不会被替换。我错过了什么吗?

{
  "Release": {
    "DefinitionName": "placeholder",
    "DefinitionId": "placeholder",
  }
  // And so on.  Placeholders do not get replaced
}

2 个答案:

答案 0 :(得分:7)

这是一种预期的行为,因为它排除了构建/发布的系统定义变量: enter image description here

如果要在json文件中使用系统定义变量,请创建自定义变量并将值设置为系统定义变量,如下所示,而不是直接使用系统定义变量: enter image description here

答案 1 :(得分:2)

您需要指定要更改值的json文件

Release Pipeline

然后,您只需要使用要更改的路径创建一个变量。 例如,我想更改属性Version Json File

所以,我需要使用以下名称创建一个变量:

  

Aplicacao.Version

Variables