docker dotnet restore在错误的nuget-source中查找

pn9klfpd  于 2023-08-03  发布在  Docker
关注(0)|答案(2)|浏览(103)

我在我的Nuget.config的Docker相关部分运行一个“dotnet restore”

<?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


其中一个包是“MassTransit”,我从nuget.org获得,但恢复操作给了我错误
无法从“https://mycompanysource.com/.../nuget/v3/flat2/masstransit/5.5.6/masstransit.5.5.6.nupkg”下载包“MassTransit.5.5.6”。
由于某种原因,私人来源有大众运输(5.5.5),所以我认为这混淆了事情。我可以以某种方式强制nuget使用MassTransit的特定来源吗?(我需要nuget.org和私有nuget repo)

30byixjq

30byixjq1#

在对一个与您所概述的非常相似的问题进行多次试验和错误之后,我发现了一个潜在的解决方案。由于NuGet中的设计决策,如果任何源在依赖关系图中无法进行身份验证,则其他包可能无法下载。在解决了私有源的身份验证问题后,公共包成功恢复。
您是否收到针对私有(https://mynugetsource.com/nuget/v3/index.json)源的身份验证错误?
标签:https://github.com/NuGet/Home/issues/6373

fwzugrvs

fwzugrvs2#

有一个类似的问题,但与Asp.net包。我收到的错误是401未经授权。与此同时,我被“未经授权”的链接导致json结果显示无法找到该软件包。
包管理器试图从私人提要中获取包,而这些提要应该从nuget.org中获取。感谢大卫Dindak提供的链接,我了解到登录有一些问题。
我所做的是首先从配置中禁用所有包源。然后在我的解决方案文件夹中为每个私有源逐一启动CMD命令:

nuget.exe restore <solution name>

字符串
然后我只启用了nuget.org源代码,并从Nuget包管理器中恢复了包。
在经历了两天的煎熬之后,我终于找到了解决方案。

相关问题