Azure Pipelines中DotNetCoreCLI任务双引号转义问题
要在DotNetCoreCLI@2任务中正确传递-p ContainerImageTags='"1.0.0;latest"'(即实际执行时的-p ContainerImageTags='"1.0.0;latest"')格式参数,需遵循YAML的转义规则,而非Bash的shell转义逻辑,具体有两种可行方案:
方案一:双引号包裹arguments,用\"转义内部双引号
- task: DotNetCoreCLI@2 inputs: command: 'publish' arguments: "-c Release -p ContainerImageTags='\"1.0.0;latest\"'"
YAML解析后,最终传递给dotnet publish的参数会保留'"1.0.0;latest"'的格式,符合.NET SDK内置容器支持的要求。
方案二:单引号包裹arguments,用两个单引号转义内部单引号
- task: DotNetCoreCLI@2 inputs: command: 'publish' arguments: '-c Release -p ContainerImageTags=''"1.0.0;latest"''
在YAML的单引号字符串中,连续两个单引号会被解析为一个单引号,因此最终参数格式会被正确保留。
关键说明
DotNetCoreCLI@2任务不会像Bash任务那样处理shell层面的转义,而是直接将arguments内容作为参数传递给dotnet命令,因此必须严格按照YAML自身的字符串转义规则处理引号,才能避免双引号丢失或语法错误。
内容的提问来源于stack exchange,提问作者Johan B
相关产品推荐
相关产品推荐

