Nuget恢复可在Visual Studio中运行,但不能从命令行运行

时间:2019-05-01 14:48:31

标签: .net visual-studio nuget nuget-package

在Visual Studio中,我配置了一个需要身份验证的Azure DevOps nuget提要。某种程度上,这可以在VS中自动运行,我可以像往常一样从提要中访问和检索软件包。

但是,一旦我从命令行运行nuget restore,就会要求我提供凭据。为什么是这样?

Visual Studio如何自动检测用于提要的凭据,如何在命令行上复制它?

该建议似乎根本不起作用,它仍然要求提供凭据:

nuget sources Update -name feed.com -username aaa -password bbb

(对于NET Framework项目,我正在使用VS2017)

1 个答案:

答案 0 :(得分:0)

我不确定100%NuGet如何使用命令行上提供的用户名和密码,但是我猜想是HTTP Basic身份验证。但是,HTTP Basic并不是一种好的做法,因此使用它的Web应用程序越少越好。 Azure DevOps正确地不接受它作为对其私人提要的身份验证形式。

使用Azure DevOps,您有两种选择。一种选择是创建一个Personal Access Token并使用它。我不打算讨论为什么使用令牌比HTTP Basic用户名和密码更安全,您可以通过快速搜索轻松地找到互联网上的大量信息。

另一种选择是使用Microsoft NuGet Credential Provider。 Visual Studio具有一个内置的。我不确定dotnet cli。但是,如果您使用的是nuget.exe,则需要按照链接的文档页面中的说明下载其凭据提供程序。如果您正在研究在Azure DevOps上运行的CI管道,如文档页面顶部所示,则他们的NuGet任务中内置了凭据提供程序。

无论如何,很遗憾,听起来有点像个混蛋,但是有很多文档和博客文章,以及有关使用Azure DevOps NuGet源和使凭据正常工作的其他信息。如果您已经遵循了这些说明,但是仍然有问题,我们可能会为您提供帮助,但是我相信您所需要的信息已经记录在案,并且可以通过其他一些Stack Overflow答案得到解答。