Azure 如何在VSTS CD中替换版本中的json文件?

Azure 如何在VSTS CD中替换版本中的json文件?,azure,azure-devops,azure-pipelines,azure-pipelines-release-pipeline,continuous-delivery,Azure,Azure Devops,Azure Pipelines,Azure Pipelines Release Pipeline,Continuous Delivery,在将构建部署到多个环境(如UAT、生产环境)时。我想用config.json替换config.uat.json或config.prod.json文件。有什么选择吗?就像我们有XML转换一样 我知道Json变量替换,但这不符合我的目的,因为变量列表很长(几乎有50个条目) 提前谢谢 在Program.cs文件中,您可以获得一个环境变量,该变量将代表您当前的环境: var builder = WebHost.CreateDefaultBuilder(args); var currentEnv = b

在将构建部署到多个环境(如UAT、生产环境)时。我想用config.json替换config.uat.json或config.prod.json文件。有什么选择吗?就像我们有XML转换一样

我知道Json变量替换,但这不符合我的目的,因为变量列表很长(几乎有50个条目)


提前谢谢

Program.cs
文件中,您可以获得一个环境变量,该变量将代表您当前的环境:

var builder = WebHost.CreateDefaultBuilder(args);
var currentEnv = builder.GetSetting("environnement");
使用此
currentEnv
值,您将能够加载文件
config.{currentEnv}.json

builder.AddJsonFile($"config.{currentEnv}.json", optional: false, reloadOnChange: true);
编辑

如果要在powershell中执行此操作,可以使用默认值对配置文件进行转换:appsettings.json包含键,appsettings.env.json包含覆盖

要转换配置,可以执行以下操作:

Param(
   [Parameter(Mandatory=$true)][string]$SpecificConfig
)
$defaultConfig = "AppSettings.json";
$settingsContent = ConvertFrom-Json $defaultConfig;
$specificContent = ConvertFrom-Json $SpecificConfig;

# Do this on each <property> to override
if (![string]::IsNullOrEmpty($specificContent.<property>))
{
    $settingsContent.<property> = $specificContent.<property>;
}
Write-Host $settingsContent > $defaultConfig;
Param(
[参数(必需=$true)][字符串]$SpecificConfig
)
$defaultConfig=“AppSettings.json”;
$settingsContent=convertfromJSON$defaultConfig;
$specificContent=convertfromJSON$SpecificConfig;
#在每个上执行此操作以覆盖
如果(![string]::IsNullOrEmpty($specificContent.))
{
$settingsContent.=$specificContent。;
}
写入主机$settingsContent>$defaultConfig;
应该是一个不错的选择,如果您不想在
variables
选项卡上逐个添加变量,可以使用VSTS REST API更新变量,或者添加powershell脚本来设置变量


否则,您可能需要删除config.uat.json或config.prod.json,并将config.json复制到目标计算机。

为什么您认为json变量替换不符合您的目的?感谢您的回复,抱歉回复太晚。Json变量subsition将不是一个好的解决方案,因为列表很长,并且需要频繁更新。如果我认为这些解决方案非常相似,则需要更新。我想知道是否有一种方法可以像xml转换一样进行json转换,但据我所知,没有内置的工具可以正确地进行转换。在powershell中,您可以使用ConvertFrom json$文件加载AppSettings.json。将进行编辑以完成答案。谢谢,我将尝试使用powershell替换