Azure 如何在VSTS CD中替换版本中的json文件?
在将构建部署到多个环境(如UAT、生产环境)时。我想用config.json替换config.uat.json或config.prod.json文件。有什么选择吗?就像我们有XML转换一样 我知道Json变量替换,但这不符合我的目的,因为变量列表很长(几乎有50个条目)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
提前谢谢 在
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替换