发布Universal Package至Azure Artifacts源时遇错误(退出码17)求助
问题描述
我正将构建流水线输出推送至Azure Artifacts的Universal Packages,应用构建成功,输出存于$(Build.ArtifactStagingDirectory)。使用的UniversalPackages@0任务配置如下:
steps: - task: UniversalPackages@0 displayName: Publish inputs: command: publish publishDirectory: '$(Build.ArtifactStagingDirectory)' vstsFeedPublish: ${{ parameters.feedName }} vstsFeedPackagePublish: ${{ parameters.package_name }} packagePublishDescription: 'python config' versionOption: custom versionPublish: ${{ parameters.version }}
执行任务时出现错误:
##[error]Error: An unexpected error occurred while trying to push the package. Exit code(17) and
error({"@t":"2025-11-10T17:23:41.2628399Z","@m":"ApplicationInsightsTelemetrySender
will correlate events with X-TFS-Session
261e7dbc-febf-4221-96b7-c58a36cb415f","@i":"d4671100","SourceContext":"ArtifactTool.Commands.UPackPublishCommand","UtcTimestamp":"2025-11-10
17:23:41.262Z"}
所用源包含npm制品,确认该源支持Universal Packages,且已配置流水线的发布权限,求解决思路。
解决思路
- 检查发布目录内容:确认
$(Build.ArtifactStagingDirectory)下的文件结构是否符合Universal Packages要求,避免目录为空或包含不兼容的特殊文件/路径。可在发布任务前添加CmdLine@2(Windows)或Bash@3(Linux)任务,执行dir $(Build.ArtifactStagingDirectory)或ls -la $(Build.ArtifactStagingDirectory)查看目录详情。 - 验证版本号格式:确保自定义版本号
${{ parameters.version }}符合语义化版本规范(如x.y.z格式),禁止包含空格、特殊字符。Azure Artifacts对Universal Packages版本号有严格格式要求,非法格式会直接导致推送失败。 - 确认权限配置细节:再次检查流水线服务账号是否拥有该Feed的Contributor角色,而非仅基础读取权限。可在Azure DevOps的Artifacts源设置页面,核实服务账号的权限分配。
- 升级任务版本:尝试将
UniversalPackages@0替换为UniversalPackages@1,新版本修复了旧版本的部分兼容性问题,可能解决此未知错误。 - 核实Feed类型:确认当前Feed为混合类型Feed(支持多类型制品),而非仅npm专用Feed。可在Feed设置中再次确认“Universal Packages”选项已启用。
- 开启详细日志:在
UniversalPackages@0任务中添加verbosity: detailed参数,获取更详尽的推送日志,定位具体报错原因。修改后的任务配置示例:steps: - task: UniversalPackages@0 displayName: Publish inputs: command: publish publishDirectory: '$(Build.ArtifactStagingDirectory)' vstsFeedPublish: ${{ parameters.feedName }} vstsFeedPackagePublish: ${{ parameters.package_name }} packagePublishDescription: 'python config' versionOption: custom versionPublish: ${{ parameters.version }} verbosity: detailed
内容的提问来源于stack exchange,提问作者auburg
相关产品推荐
相关产品推荐

