【问题标题】:Overwrite JSON in TFS releases在 TFS 版本中覆盖 JSON
【发布时间】:2020-10-17 17:01:23
【问题描述】:

我有一个 JSON 文件,我想用来自另一个 JSON 的数据“覆盖”它,但保留未更改的任何内容。有没有办法为 Azure DevOps 管道版本开箱即用地做到这一点?有一个名为 magic-chunks 的 Config 转换插件,但它的语法很奇怪,如果我需要覆盖数组,它就不能正常工作。

目标(应“覆盖”的 JSON)

{
    "AppSettings": {
      "AllowSwaggerRequests": false,
      "Secret": "SomeStuff"
    },
    "Logging": {
      "LogLevel": {
        "Default": "Debug"
      }
    }
}

应该在前一个之上使用和添加的 JSON。

{
    "AppSettings": {
      "AllowSwaggerRequests": true,
      "Secret": "Overwritten"
    },
    "TestProperty": "Hello World"
}

预期结果:

{
    "AppSettings": {
        "AllowSwaggerRequests": true,
        "Secret": "Overwritten"
    },
    "Logging": {
        "LogLevel": {
            "Default": "Debug"
        }
    },
    "TestProperty": "Hello World"
}

【问题讨论】:

  • 这是一个 X/Y 问题。您可以为 .NET Core 应用程序指定多个配置文件——即包含通用值的 appsettings.json 和包含特定于环境的覆盖的 appsettings.dev.json。请参阅有关配置的文档。
  • 嗨朋友,这个问题有什么更新吗?

标签: json tfs azure-devops


【解决方案1】:

在 TFS 版本中覆盖 JSON

据我所知,扩展中没有这样的任务可以同时用于Overwrite+Add node

另一种方法是使用 PS script to modify the Json content 就像 Krzysztof Madej 在您的问题下方建议的那样。 (他的回答在几个小时前就被删除了,但我不知道为什么......)

您也可以考虑通过免费的File Creator 任务覆盖整个 json 文件。您可以在此处为发布的不同阶段定义不同的内容:

只写你想要的内容,你不需要关心转换语法。 (启用Overwrite file if exists)。

【讨论】:

    【解决方案2】:

    这是一个 X/Y 问题。您可以为 .NET Core 应用程序指定多个配置文件——即包含通用值的 appsettings.json 和包含特定于环境的覆盖的 appsettings.dev.json。参考配置文档。

    【讨论】:

    • 它与 .NET 无关。该问题从字面上询问如何向 .json 文件添加值而不会丢失任何未被覆盖的内容。
    猜你喜欢
    • 2015-12-15
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-20
    • 1970-01-01
    相关资源
    最近更新 更多