azure - 从 AzureDevOps Replace Tokens 在 appsettings 中设置 JSON 键
问题描述
我正在努力使用 Azure Devops 中的 Replace Tokens Task 将变量发送到 Blazor 服务器应用程序中的 appsettings.json 文件。
在appsettings
,我有这个:
{
"version": "#{versionNumber}#"
}
在 Azure DevOps 中,我设置了以下变量:
versionNumber: '$(version.Major).$(version.Minor).$(version.Revision)'
我的 ReplaceToken 任务是:
- task: replaceToken@3
displayName: "Replacing version in appsettings"
inputs:
targetFiles: '**/*.appsettings.json'
encoding: 'auto'
writeBOM: true
actionOnMissing: 'warn'
keepToken: false
tokenPrefix: '#{'
tokenSuffix: '}#'
useLegacyPattern: false
enableTelemetry: true,
verbosity: detailed
但是,在构建管道中,我看到:
replaced 0 tokens out of 0 in 0 file(s) in 1.17 seconds
对我在这里做错了什么有任何帮助吗?
解决方案
从 AzureDevOps Replace Tokens 在 appsettings 中设置 JSON 键
那是因为您在该任务中缺少参数根目录,即搜索文件的基本目录。如果未指定,将使用默认工作目录。
由于您没有在任务中指定 Root 目录,因此它将使用默认工作目录,例如System.DefaultWorkingDirectory
.
但是,您指定targetFiles
with **/*.appsettings.json
,如果该appsettings.json
文件碰巧不在默认文件夹的子文件夹中,那么您将遇到与您相同的问题。
所以,要解决这个问题,我们需要指定根目录。您可以使用经典模式通过浏览根目录选择文件:
然后我们可以通过 View YAML 选项获取 YAML。
并用样品测试,它在我这边工作正常:
推荐阅读
- javascript - 用 jquery 填充不同类型的表单,每个表单都不起作用
- c++ - 解压可变参数模板的结果 - Visual Studio 2019 CE
- bioinformatics - 提取 PDB 文件中的绑定数据
- sqlite - SQLite 和多次插入清理
- c# - c# LINQ 动态选择交叉连接
- android - Android:打开默认谷歌地图应用程序并取回固定位置
- http - 无法在 golang 中使用 socks5 代理 - 阅读:对等方重置连接
- javascript - ExtJS 从兄弟元素中获取值
- typescript - WebPack 编译 TS 文件而不包含在 HTML 中
- c++ - glShaderSource 崩溃