如果我从DotNetCoreCLI@2任务中删除nobuild:true选项以打包项目(即创建 NuGet 包) ,CI 管道运行良好,但我无法理解除了不构建项目之外 nobuild 选项带来的特殊之处. 我不需要再次构建项目,因为上一个任务已经构建了项目并锁定了生成的 DLL 的程序集版本。我想使用相同的构建来创建 NuGet 包并执行相同的操作,我需要传递 NoBuild 选项,但这样做会破坏管道。
管道给出了要打包的 DLL 在指定位置不存在的错误,但我尝试查看该位置,我可以找到 DLL。让我感到困惑的一件事是,虽然我已将 nobuild 设为 true 但仍然任务显示为构建项目。
- 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