dotnet恢复查找错误的nuget源

时间:2019-12-03 07:42:23

标签: docker .net-core nuget

我在Docker中运行“ dotnet restore” 我的Nuget.Config的相关部分看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="MyNuget" value="https://mynugetsource.com/nuget/v3/index.json" />
  </packageSources>
</configuration>

来自我的Dockerfile

COPY ["NuGet.Config", "myproject.Api/"]
RUN dotnet restore "myproject.Api/myproject.Api.csproj" --configfile nuget.config

其中一个软件包是我从nuget.org获得的“ MassTransit”,但是还原操作却给我错误

  

无法从以下位置下载软件包“ MassTransit.5.5.6”   'https://mycompanysource.com/.../nuget/v3/flat2/masstransit/5.5.6/masstransit.5.5.6.nupkg'。

由于某种原因,私人来源具有MassTransit(5.5.5),因此我认为这令人困惑。 我可以以某种方式强迫nuget使用MassTransit的特定来源吗?(我需要nuget.org和私有nuget回购)

1 个答案:

答案 0 :(得分:1)

经过反复试验,发现一个与您所概述的问题非常相似的问题,我发现了一个可能的解决方法。由于NuGet中的设计决定,如果任何源未能在依赖关系图中进行身份验证,则其他软件包可能无法下载。更正了我们对私有源的身份验证问题后,公共软件包已成功还原。

您是否收到针对私人(https://mynugetsource.com/nuget/v3/index.json)来源的身份验证错误?

相关:https://github.com/NuGet/Home/issues/6373