首页 > 解决方案 > 如何使用标准 Azure Devops DotNet 构建任务获取二进制日志,并将其作为带有 YAML 构建的工件附加到构建中?

问题描述

到目前为止,我一直在使用我自己的构建 Powershell 脚本来构建我的代码。为什么?因为我喜欢在请求诊断构建时有一个二进制日志,并将其作为工件附加到构建中。

但现在我使用 YAML,我想使用 Azure DevOps 提供的更多标准任务。即 DotNet Build 任务。但我不知道如何让它生成二进制日志并附加到构建而不编写自定义脚本。我希望它透明地工作 - 触发诊断构建(即是真System.Debug的)应该做两件事:

  1. 传递-bl:TheBinaryLogFilePath给 dotnet 构建
  2. TheBinaryLogFilePath作为工件附加到构建。

是否可以在不编写自定义脚本的情况下以直接的方式进行(否则无论如何都不值得使用标准任务)?

标签: buildazure-devops

解决方案


当您进行调试构建时,您无法控制哪些更改。这可能永远不会自动发生,因为我看不出微软为什么会实施改变我的应用程序构建方式的原因。

至于标准任务,您可以使用arguments:属性向它传递其他参数。

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/build/dotnet-core-cli?view=azure-devops#yaml-snippet

那么您还必须指示发布工件任务来获取该二进制文件夹路径。而已。

如果你想有条件 - 很好,使用条件:

  - ${{ if eq($(System.Debug), 'true') }}:
    - task: DotNetCoreCLI@2
      displayName: build
      inputs:
        command: build
        publishWebProjects: false
        zipAfterPublish: false
        modifyOutputPath: false
        projects: xxx
        arguments: |
          -bl:TheBinaryLogFilePath 

推荐阅读