Msbuild 从Teamcity更新appsettings.json文件

Msbuild 从Teamcity更新appsettings.json文件,msbuild,.net-core,teamcity,configuration-files,msbuild-task,Msbuild,.net Core,Teamcity,Configuration Files,Msbuild Task,我的dotnet核心项目中有一个appsettings.json文件。从Teamcity我需要更新文件的内容。文件看起来像这样 { "keyofjson":"valuetobeupdated" } 我需要更新基于keyofjson更新的文本值。 在传统的.net项目中,我们有.config文件,可以使用基于msbuild文件的方法,使用xmlpeek和xmlpoke任务中的目标来更新该文件。我们在dotnet core中有相同的功能吗?在步骤构建中使用PowerShell脚本: $fi

我的dotnet核心项目中有一个appsettings.json文件。从Teamcity我需要更新文件的内容。文件看起来像这样

{
    "keyofjson":"valuetobeupdated"
}
我需要更新基于keyofjson更新的文本值。
在传统的.net项目中,我们有.config文件,可以使用基于msbuild文件的方法,使用xmlpeek和xmlpoke任务中的目标来更新该文件。我们在dotnet core中有相同的功能吗?

在步骤构建中使用PowerShell脚本:

$filePath = "yourPath"

(GC $filePath).Replace("valuetobeupdated", "keyofjson") | Set-Content $filePath

您尚未指定此值在每个生成的基础上不同,如果每次要更改的值都相同,则只需添加生成功能并选择“文件内容替换器”,然后查找“valuetobeupdated”并将其替换为所需的值


如果该值是在生成过程中计算的值,则需要使用生成步骤,例如powershell/commandline步骤来执行上述查找和替换

您正在寻找msbuild解决方案吗?因为您可以从powershell、groovy或其他构建步骤更改json文件。这可能不起作用,上面的命令将尝试查找要更新的值,如果找到,将使用keyofjson更新。我现在看到的是,我需要在json中找到密钥,然后将其值更新为我提到的值。代码的行为取决于配置。因此,我需要根据json中的键更新此值。您可以配置构建步骤来定位所需的值,然后将其分配给teamcity参数,下面是我以前使用过的一个示例:echo teamcity[setParameter name='DB_REVISION'value='$oldRevision']