NuGet Package Restore无法使用自定义源提示输入凭据

NuGet Package Restore无法使用自定义源提示输入凭据,nuget,Nuget,我已在解决方案中启用NuGet软件包还原。我使用的是nuget.exe版本2.0.30828.5。对于普通公共提要中的包,NuGet包还原可以正常工作。也就是说,如果“Packages”目录中没有任何内容,并且我的本地NuGet缓存(C:\Users\{username}\AppData\local\NuGet\cache)是清除的,那么NPR工作得很好 但是,当我们尝试在自定义源中对包使用NPR时(自定义源具有基本身份验证),我们得到以下结果: EXEC : warning : Unable

我已在解决方案中启用NuGet软件包还原。我使用的是nuget.exe版本2.0.30828.5。对于普通公共提要中的包,NuGet包还原可以正常工作。也就是说,如果“Packages”目录中没有任何内容,并且我的本地NuGet缓存(C:\Users\{username}\AppData\local\NuGet\cache)是清除的,那么NPR工作得很好

但是,当我们尝试在自定义源中对包使用NPR时(自定义源具有基本身份验证),我们得到以下结果:

EXEC : warning : Unable to prompt for credentials. Consult NuGet's help documentation for ways to specify credentials.
c:\<localpath>\.nuget\nuget.targets(80,9): error : Unable to find version '2.0.1.0' of package '<packageName>'.
c:\<localpath>\.nuget\nuget.targets(80,9): error MSB3073: The command ""c:\<localpath>\.nuget\nuget.exe" install "c:\<localpath>\packages.config" -source ""  -RequireConsent -o "c:\<localpath>\packages"" exited with code 1.
但是得到了同样的结果

有人知道如何使用Basic auth for NuGet Package Restore为自定义NuGet提要指定凭据吗

2012年9月18日更新

我有关于这个问题的最新消息。我注意到,当我运行nuget.exe source Update…命令时,它将节添加到我的解决方案本地.nuget文件夹中的nuget.config文件中。然后,我在运行构建时运行了procmon.exe,注意到没有查看此文件!相反,它在“C:\Users{username}\AppData\Roaming\NuGet”目录中查找NuGet.config文件。然后,我将本地NuGet.config文件中的部分复制/粘贴到\AppData\Roaming\NuGet目录中的NuGet.config文件中,它成功了


所以…问题是,这个过程的最佳实践是什么。这就是我所做的让它工作。首先,它显示命令:

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword}
这是正确的做法。需要注意的是,当您运行“nuget.exe源代码更新”命令时,nuget.exe将在与正在执行的nuget.exe相同的目录中查找nuget.config文件(如果存在)如果它存在,它将在那里存储更改。如果它不存在,它将把更改存储在%AppData%\NuGet目录下的NuGet.config文件中

另外需要注意的是,当包还原作为生成的一部分执行时,它只查看%AppData%\NuGet目录中的NuGet.config文件,而忽略正在执行的NuGet.exe的同一目录中的NuGet.config文件(我不确定这是错误还是故意的)


因此,您应该使用未包含nuget.config文件的目录中的nuget.exe运行此命令,以确保更改存储在%AppData%\nuget目录中正确的nuget.config文件中。

我的理解是,还有一个选项可以向nuget.exe提供配置文件,因此,您可以尝试在调用它时更加明确,让它尝试并使用该文件,但某些命令可能会忽略它。
NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword}