gpt4 book ai didi

asp.net-core - 构建失败, "Error:The process '/usr/bin/dotnet' 失败,退出代码 1"after adding "no-build :true"in the dotnet pack command

转载 作者:行者123 更新时间:2023-12-05 02:57:23 28 4
gpt4 key购买 nike

如果我从 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'

Error:

同样重要的是要注意,同样的事情 (nobuild:true) 在 Windows Agent 上有效,但在 Ubuntu Agent 上失败。

PS:可能是windows升级了代理导致的问题。我搜索了这个问题,发现必须在构建管道中锁定 .net SDK

最佳答案

感谢您提供可能与该问题相关的其他答案,但事情已经得到处理。

由于 .NET SDK 中的问题,该问题仅出现在 Linux 环境中。引用here

正在生成的错误(在指定路径中找不到 DLL)在某种程度上是正确的,但它也具有误导性。 DLL 在构建阶段在 Release 文件夹中生成,当我打包 DLL 时,它们在 release 文件夹中被搜索。尽管 Releaserelease 在 Windows 环境中保持不变,但 Ubuntu 区分大小写会产生错误。

.Net Core 的 SDK 实现错过了 Regex 选项中的 IgnoreCase,这导致构建在切换到 Linux Agent 时中断。

网络构建: enter image description here

网络包: enter image description here

解决方案:定义在 .csproj 中生成 DLL 的文件夹,自动构建和打包步骤将从那里选择 DLL。

关于asp.net-core - 构建失败, "Error:The process '/usr/bin/dotnet' 失败,退出代码 1"after adding "no-build :true"in the dotnet pack command,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59745522/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com