当我试图通过NuGet cli添加一个dotnet
包时,会发现一个错误,即它无法访问我的一个自定义NuGet源。有没有一种方式可以说“我不在乎,还原从你可以的地方”?
McMaster.Extensions.CommandLineUtils显然它存在于NuGet.org中,并且它找到了它,但是停止了b/c,它不能访问自定义的源♂️。
PS:\Temp\blah-project> dotnet添加包McMaster.Extensions.CommandLineUtils 信息:将包'McMaster.Extensions.CommandLineUtils‘的McMaster.Extensions.CommandLineUtils添加到项目'c:\Temp\blah- project \blah-project.csproj’。 info :为c:\Temp\blah-project\blah-project.csproj还原包 信息:获取https://api.nuget.org/v3-flatcontainer/mcmaster.extensions.commandlineutils/index.json 信息: OK https://api.nuget.org/v3-flatcontainer/mcmaster.extensions.commandlineutils/index.json 147 OK 错误:无法加载源包装/Blah/nuget/v3/index.json的服务索引。 错误:响应状态代码并不表示成功: 401 (未经授权)。
发布于 2020-03-12 09:15:42
dotnet
命令有指定--source
的选项。这只允许您从特定位置还原包,在这种情况下,您需要使用
dotnet restore --source https://api.nuget.org/v3/index.json`
这应该会将包拉到本地的NuGet商店,并解决机器上的问题。
为了将包添加到项目中,您可能需要手动将<PackageReference>
添加到项目中,如下
<PackageReference Include="McMaster.Extensions.CommandLineUtils" Version="2.6.0" />
然后,运行上面的restore命令将为您获取包。
作为一个更永久的解决方案,您应该将一个nuget.config
文件放在项目/存储库的根目录中,在其中指定该特定项目的包源。有些设置可以设置为覆盖系统的全局nuget配置/源。请参阅有关nuget.config的更多信息。您可以使用nuget.config在回购中创建启动dotnet new nugetconfig
。
发布于 2020-04-22 18:25:03
在还原包时,dotnet调用所有包源来获取包,并使用首先响应的包。
在您的示例中,由于某些身份验证问题,它无法访问该源。可以使用以下命令禁用该源,然后尝试提取包。
dotnet nuget disable source <NAME> [--configfile <FILE>]
发布于 2022-07-25 13:51:56
您可能可以使用--ignore-failed-sources
选项。
最近,在私有提要上出现身份验证问题时,我遇到了类似的问题,这允许我安装软件包(实际上是一个使用dotnet tool install
的工具),并在稍后的某个日期解决我的auth问题。
有关更多信息和选项,请参见https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-restore。
https://stackoverflow.com/questions/60062106
复制相似问题