【问题标题】:Escape spaces in azure-pipelines.yml for the dotnet publish command为 dotnet publish 命令转义 azure-pipelines.yml 中的空格
【发布时间】:2021-07-01 18:03:16
【问题描述】:

当dotnet publish 命令在 Azure Pipelines 中执行时,我收到错误消息:“MSBUILD : error MSB1008: Only one project can be specified”大概是因为我的存储库名称中有空格,但我无权更改 repo 名称。

带有dotnet publish 命令的azure-pipelines.yml 部分:

- task: DotNetCoreCLI@2
  displayName: 'dotnet publish'
  inputs:
    command: publish
    publishWebProjects: false
    projects: '**/My App Backend/*.csproj'
    arguments: '--configuration $(buildConfiguration) --output $(Build.
    ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  displayName: 'publish artifacts'

我尝试了以下方法来转义 repo 名称中的空格,但没有运气:

  • 用 %20 替换空格。
  • 用“\”封装文件路径的开头和结尾。

还有其他方法可以逃避我缺少的空间吗?

【问题讨论】:

    标签: c# azure msbuild azure-pipelines


    【解决方案1】:

    在 azure-pipelines.yml 中为 dotnet publish 命令转义空格

    如果我创建一个名称中包含转义空格的项目,我可以重现此问题。

    要解决此问题,请尝试在参数--output "$(Build.ArtifactStagingDirectory)" 中使用双引号:

    - task: DotNetCoreCLI@2
      displayName: Publish
      inputs:
        command: publish
        publishWebProjects: false
        projects: '**/My App Backend/*.csproj'
        arguments: '--configuration $(BuildConfiguration) --output "$(build.artifactstagingdirectory)"'
    

    测试结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多