Azure Pipelines中的多行字符串

时间:2019-11-12 17:06:41

标签: yaml azure-pipelines

我可以在Azure Pipelines中使用multiline YAML string吗?

使用ASP.NET Core(.NET Framework)模板,我尝试对msbuildArgs进行多重处理,但这没用。

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    msbuildArgs: >
       '/p:DeployOnBuild=true /p:WebPublishMethod=Package'
       '/p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true'
       '/p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip"'
       '/p:DeployIisAppPath="Default Web Site"'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'
  

MSBUILD:错误MSB1008:只能指定一个项目。
  开关:'/ p:DeployOnBuild = true


正在审核string reference documentation,但与此主题无关​​。

3 个答案:

答案 0 :(得分:1)

  

Azure管道中的多行字符串

Shayki Abramczyk指出了此错误的关键。

  

只需在msbuildArgs的开头和结尾放入一个 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9   无需为每个MSBuild参数进行配置

作为测试,遵循YAML为我工作:

'

注意:变量- task: VSBuild@1 displayName: 'Build solution YourSolution' inputs: solution: $(solution) msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"' platform: '$(buildPlatform)' configuration: '$(buildConfiguration)' 应该指向特定的解决方案$(solution)或项目.sln文件而不是.csproj。如果您的存储库中还有其他解决方案,则可能会收到错误**\*.sln

更新

  

但是我不希望像您提供的答案那样超长的运行时间。一世   想跨多行!

如果您不想像MSBuild参数中那样超长运行时间,可以直接将其拆分,但要注意缩进,例如:

Only one project can be specified

作为测试,它可以正常工作。

希望这会有所帮助。

答案 1 :(得分:0)

您可以将'放在msbuildArgs的开头和结尾:

- task: VSBuild@1
  displayName: 'Build solution **\*.sln'
  inputs:
    vsVersion: latest
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package 
    /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true'

答案 2 :(得分:0)

我总是这样使用YAML block chomping operator

msbuildArgs: >-
  /p:DeployOnBuild=true
  /p:WebPublishMethod=Package
  /p:PackageAsSingleFile=true
  /p:SkipInvalidConfigurations=true
  /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip"
  /p:DeployIisAppPath="Default Web Site"

效果很好,使事情变得清晰整洁