有些软件包无法从 Azure DevOps Artifacts feed 使用 NuGet upstream 源下载。

4
我创建了Azure Artifacts Feed并将NuGet Gallery配置为上游,但是当我尝试安装Newtonsoft.Json.Bson包时,总是会失败并显示错误:Install-Package: NU1101:无法找到程序包Newtonsoft.Json.Bson。在以下源中不存在此id的任何软件包:MyFeed、Microsoft Visual Studio离线包。有些软件包可以正常工作,但有些则不行,这让人很困惑。

enter image description here


你在哪里遇到了错误,是本地构建还是 Azure DevOps Pipeline 中?你是通过管道中的任务还是通过命令从 feed 下载包? - Cece Dong - MSFT
2个回答

3

您需要允许从私有仓库获取的软件包可以从公共仓库获取。

请参阅文档此处

这里是文档中的powershell片段,它将允许从公共存储库获取软件包:

$env:PATVAR = "YOUR_PAT_GOES_HERE"
$token = [Convert]::ToBase64String(([Text.Encoding]::ASCII.GetBytes("username:$PatVar")))
$headers = @{
    Authorization = "Basic $token"
}
$url = 
    "https://pkgs.dev.azure.com/{OrganizationName}/{ProjectName}/_apis/packaging/feeds/{FeedName}/{Protocol}/packages/{PackageName}/upstreaming?api-version=6.1-preview.1"
$body = '{"versionsFromExternalUpstreams": "AllowExternalVersions"}'
    
Invoke-RestMethod -Uri $url -Headers $headers -Body $body -Method Patch -ContentType "application/json"

嗨,我遇到了同样的问题。在OP的问题中应该是什么URL?在他的情况下,公共NuGet是https://api.nuget.org/v3/index.json,那么在你的解决方案中应该是什么URL? - digitguy

0
为了使您的源提供确定性还原,重要的是确保您的包源配置文件(.npmrc_或_nuget.config)只引用启用上游源的 Azure Artifacts 源。对于 NuGet,<packageSources> 部分应该如下所示:
<packageSources>
  <clear />
  <add key="FabrikamFiber" value="https://pkgs.dev.azure.com/fabrikam/_packaging/FabrikamFiber/nuget/v3/index.json" />
</packageSources>

<clear /> 标签是必需的,因为 NuGet 组合了几个配置文件来确定要使用的完整选项集。 <clear /> 告诉 NuGet 忽略在更高级别的配置文件中定义的所有其他 <packageSources>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接