Azure Pipeline从Azure Artifacts还原NuGet包失败的问题求助
我正在搭建我的第一个Azure Pipeline,但在从Azure Artifacts还原NuGet包时遇到了麻烦。我用了默认的YAML文件,还添加了一个指向我的Artifact实例的NuGet任务:
- task: NuGetCommand@2 inputs: command: 'restore' restoreSolution: '**/*.sln' feedsToUse: 'Telerik' vstsFeed: '<guid>/a765533f-c8a7-49aa-9b83-adcf9b945be9' includeNuGetOrg: false
此外还有一个默认的包还原任务:
- task: NuGetCommand@1 inputs: restoreSolution: '$(solution)'
我在项目根目录(和.sln文件同目录)创建了NuGet.config文件,内容如下:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="Telerik" value="https://pkgs.dev.azure.com/OneHRADO/<guid>/_packaging/Telerik/nuget/v3/index.json" /> </packageSources> </configuration>
运行后我的两个项目都抛出了错误:
Errors in D:\a\1\s\HR Taxonomy Change Management\HR Taxonomy Change Management.csproj
NU1101: Unable to find package Telerik.UI.for.Blazor. No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, NuGetOrgErrors in D:\a\1\s\HR Taxonomy Change Management Tests\HR Taxonomy Change Management Tests.csproj
NU1101: Unable to find package Telerik.UI.for.Blazor. No packages exist with this id in source(s): C:\Program Files\dotnet\library-packs, NuGetOrg
我怀疑是第一个NuGet任务找不到Artifacts里的包,导致流程失败了。
更新:还是没解决
我尝试了@johnmoarr的建议,但没有任何变化。我试过移除每个nuget(或dotnetcli)命令,还调整了任务顺序。现在我确定了一件事:那个“基础”的nuget命令会尝试从nuget.org获取所有包,包括Telerik的包,所以直接失败。如果我把指向Artifact的nuget任务放在前面,它又会因为找不到其他依赖包而失败。
我之前查过资料,知道可以在nuget.config里配置多个源,比如:
<configuration> <packageSources> <clear /> <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> <add key="Telerik" value="https://pkgs.dev.azure.com/OneHRADO/33581106-1fd6-4092-9693-a20196c22142/_packaging/Telerik/nuget/v3/index.json" /> </packageSources> </configuration>
但公司内部的安全扫描工具认为配置两个HTTPS源存在风险,直接抛出了错误。
我一直在找办法让第一个nuget命令不要尝试还原我Artifact里的特定包,但目前还没找到可行的方案。
备注:内容来源于stack exchange,提问作者USMC6072

