【发布时间】:2020-05-01 20:56:10
【问题描述】:
如果我从 DotNetCoreCLI@2 任务中删除 nobuild:true 选项以打包项目(即创建 NuGet 包),CI 管道运行良好,但我除了不构建项目之外,我无法理解 nobuild 选项带来了什么特别之处。 我不需要再次构建项目,因为上一个任务已经构建了项目并锁定了生成的 DLL 的程序集版本。我想使用相同的构建来创建 NuGet 包并执行相同的操作,我需要传递 NoBuild 选项,但这样做会破坏管道。
管道给出的错误是要打包的 DLL 在指定位置不存在,但我试图查看该位置,我可以找到 DLL。让我感到困惑的一件事是,尽管我已将 nobuild 设置为是的,但任务仍然显示为构建项目。
- task: DotNetCoreCLI@2
displayName: ".NET pack"
inputs:
command: pack
packagesToPack: ${{ parameters.packagesToPack }}
nobuild: true
versioningScheme: byEnvVar
versionEnvVar: CI_Version
packDirectory: $(build.artifactStagingDirectory)\${{ parameters.packTo }}
verbosityPack: 'Normal'
同样重要的是要注意 同样的事情(nobuild:true) 在 Windows 代理上有效,但在 Ubuntu 代理上失败。
PS:可能是 Windows 升级了代理并导致了问题。我搜索了这个问题,发现必须在构建管道中锁定 .net SDK
【问题讨论】:
标签: asp.net-core azure-devops continuous-integration azure-pipelines build-pipeline