Azure构建流水线中Telerik NuGet包还原失败求助
解决Azure流水线拉取Telerik NuGet包的401未授权与XML配置错误
一、修复NuGet.Config XML格式错误
你遇到的XML解析错误,是因为配置里用了HTML转义的",XML解析器无法识别。替换成普通双引号即可,正确的配置内容如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="NuGet" value="https://api.nuget.org/v3/index.json" protocolVersion="3"/> <add key="Telerik_NuGet" value="https://nuget.telerik.com/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>
二、解决401未授权问题
调整构建任务配置,同时确保Telerik服务连接配置正确:
修正后的构建任务配置
- task: NuGetToolInstaller@1 inputs: versionSpec: '5.0.2' # 也可尝试升级到6.x版本,兼容性更好 - task: NuGetAuthenticate@1 inputs: nuGetServiceConnections: 'Telerik_v3' # 必须和Azure中配置的服务连接名称完全一致 - task: NuGetCommand@2 inputs: command: 'restore' restoreSolution: '**/*.sln' feedsToUse: 'config' nugetConfigPath: './XXXXXXX/nuget.config' # 或用$(System.DefaultWorkingDirectory)/XXXXXXX/nuget.config确保路径准确
核心配置要点
- 服务连接正确性:
- Azure中的
Telerik_v3服务连接必须是NuGet服务连接类型 - 源URL填
https://nuget.telerik.com/v3/index.json - 用户名是你的Telerik账号邮箱,密码是Telerik账户设置里生成的专用NuGet API密钥(不是账号登录密码)
- Azure中的
- 避免重复授权配置:不要同时在
NuGetCommand里加externalFeedCredentials和使用NuGetAuthenticate,二选一即可,优先用NuGetAuthenticate统一处理授权。
三、额外排查建议
如果问题仍存在:
- 加一个
CmdLine@2任务执行dir $(System.DefaultWorkingDirectory)/XXXXXXX,确认nuget.config文件存在且路径正确 - 本地测试Telerik密钥有效性:用
nuget sources add -name Telerik_NuGet -source https://nuget.telerik.com/v3/index.json -username 你的邮箱 -password 你的NuGet密钥,尝试拉取包验证凭据是否可用 - 检查Azure服务连接的凭据是否过期,重新生成密钥并更新服务连接
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

