Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Nuget restore可以在Visual Studio中工作,但不能从命令行进行_.net_Visual Studio_Nuget_Nuget Package - Fatal编程技术网

.net Nuget restore可以在Visual Studio中工作,但不能从命令行进行

.net Nuget restore可以在Visual Studio中工作,但不能从命令行进行,.net,visual-studio,nuget,nuget-package,.net,Visual Studio,Nuget,Nuget Package,在VisualStudio中,我配置了一个需要身份验证的Azure DevOps nuget提要。不知何故,这会自动在VS中工作,我可以像往常一样从提要中访问和检索包 但是,只要我从命令行运行numget restore,就会要求我提供凭据。为什么会这样 Visual Studio如何自动检测用于提要的凭据,以及如何在命令行上复制此凭据 此建议似乎根本不起作用,它仍然要求提供凭据: nuget sources Update -name feed.com -username aaa -passwo

在VisualStudio中,我配置了一个需要身份验证的Azure DevOps nuget提要。不知何故,这会自动在VS中工作,我可以像往常一样从提要中访问和检索包

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

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

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

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

(我正在使用VS2017,用于一个.NET Framework项目)

我不能100%确定NuGet如何使用命令行上提供的用户名和密码,但我猜应该是HTTP基本身份验证。但是,HTTP Basic被认为不是一种好的实践,因此使用它的web应用程序越少越好。Azure DevOps理所当然地不接受它作为对其私有提要的身份验证形式

使用Azure DevOps,您有两个选择。一种选择是创建一个新的应用程序并使用它。我不想解释为什么使用令牌比HTTP基本用户名和密码更安全,互联网上有大量信息,你可以通过快速搜索轻松找到

另一个选项是使用。VisualStudio有一个内置的。我对dotnetcli没有把握。但是,如果您使用的是nuget.exe,则需要按照链接文档页面中的说明下载其credial提供程序。如果您正在调查Azure DevOps上运行的CI管道,正如文档页面顶部所说,他们的NuGet任务中内置了凭据提供程序


在任何情况下,很抱歉听起来像个混蛋,但是有相当多的文档和博客帖子以及其他关于使用Azure DevOps NuGet Feed并使凭据正常工作的信息。如果您遵循了这些说明,但仍有问题,我们可能会提供帮助,但我相信您所需的信息已经记录在案,并已由其他几个堆栈溢出答案回答。

谢谢-凭据提供程序方法似乎最适合您。当然有文档,但我有点不相信在执行简单的nuget还原时提供命令行凭据会如此困难。这是为了安全。任何像样的网站都会禁止在没有2FA的情况下使用用户名/密码登录,而且对于如何使用本机应用程序进行2FA也没有标准(更不用说nuget.exe通常在脚本中使用,而不是以交互方式使用)