【问题标题】:Updating a appsettings.json file from Teamcity从 Teamcity 更新 appsettings.json 文件
【发布时间】:2018-06-01 16:39:42
【问题描述】:

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

{
    "keyofjson":"valuetobeupdated"
}

我需要根据“keyofjson”更新文本“valuetobeupdated”。 在传统的 .net 项目中,我们有 .config 文件,该文件可以使用基于 xmlpeek 和 xmlpoke 任务的目标的 msbuild 文件进行更新。我们在 dotnet core 中有相同的东西吗?

【问题讨论】:

  • 您在寻找 msbuild 解决方案吗?因为您可以从 powershell、groovy 或其他构建步骤更改 json 文件。

标签: msbuild .net-core teamcity configuration-files msbuild-task


【解决方案1】:

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

$filePath = "yourPath"

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

【讨论】:

  • 这可能不起作用,上面的命令将尝试查找“valuetobeupdated”,如果找到,它将使用“keyofjson”进行更新。我正在查看的是我需要在该 json 中找到密钥,然后将其值更新为我提到的内容。
【解决方案2】:

您没有指定此值在逐个构建的基础上是不同的,如果您想要更改的值每次都相同,您只需添加构建功能并选择“文件内容替换器”并找到并将“valuetobeupdated”替换为您想要的值。

如果该值是在构建期间计算的值,那么您将需要使用构建步骤,例如执行上述查找和替换的 powershell/命令行步骤。

【讨论】:

  • 文件在不同的配置下保持不变,但json的值不断变化。根据配置,代码的行为。所以我需要根据json中的key更新这个值。
  • 您可以配置构建步骤来定位所需的值,然后将其分配给 teamcity 参数,这是我之前使用的示例: echo "##teamcity[setParameter name='DB_REVISION' value='$oldRevision']"
猜你喜欢
  • 1970-01-01
  • 2022-11-24
  • 1970-01-01
  • 2013-10-24
  • 2015-10-28
  • 2021-12-24
  • 1970-01-01
  • 2018-08-14
  • 1970-01-01
相关资源
最近更新 更多