Azure DevOps中DotNetCoreCLI@2无法将.NET6 Web API发布为.zip包
问题分析与解决
核心错误点
- 参数名拼写错误:你的DotNetCoreCLI任务里用了
commands,但正确的参数名是command(单数形式)。这个错误导致任务没有执行publish命令,而是默认执行了build命令,自然不会触发zipAfterPublish的打包逻辑——从日志里的/usr/bin/dotnet build也能验证这一点。 - 路径格式不兼容:你使用了Windows风格的反斜杠
.\src\...,但代理是Ubuntu系统,应该用正斜杠./src/...。 - 参数冲突:当显式指定具体项目文件时,
publishWebProjects: true会被忽略,建议设为false避免混淆。
修正后的YAML配置
pool: vmImage: 'ubuntu-latest' - task: DotNetCoreCLI@2 inputs: command: publish # 修正为单数command publishWebProjects: false # 指定具体项目时设为false arguments: '-c Release -r linux-x64 --no-self-contained --output $(Build.ArtifactStagingDirectory) ./src/BasicDemoApi/BasicDemoApi.csproj' # 修正路径斜杠 zipAfterPublish: true - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)' ArtifactName: 'drop'
额外说明
修正后,任务会正确执行dotnet publish命令,结合zipAfterPublish: true,会在$(Build.ArtifactStagingDirectory)目录下生成对应的zip包,最后通过PublishBuildArtifacts任务上传到Azure DevOps的制品库中。
内容的提问来源于stack exchange,提问作者Farid
相关产品推荐
相关产品推荐

