NuGet和VS2013忽略nuget.config中的packageSourceCredentials

时间:2014-06-09 16:30:24

标签: visual-studio nuget

我有一个私有的nuget服务器,我试图从中提取包(最终是Azure构建代理,但我首先在本地尝试)。

我正在使用2.7 NuGet意味着我不需要.NuGet文件夹(以及.exe和.targets)。我的解决方案目录中有一个nuget.config。

我知道正在拾取nuget.config,因为它找到了我的远程存储库,但未使用配置中提供的凭据。

这是我的配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSources>
    <add key="https://www.nuget.org/api/v2/" value="https://www.nuget.org/api/v2/" />
    <add key="myrepo" value="http://myrepo:81/nuget/myfeed" />
  </packageSources>
  <disabledPackageSources />
  <packageSourceCredentials>
    <myrepo>
      <add key="Username" value="user" />
      <add key="ClearTextPassword" value="pass" />
    </myrepo>
  </packageSourceCredentials>
</configuration>

什么会导致nuget忽略这些凭据?我已经与Fiddler核实过并且没有发送凭据,服务器以401(正确)响应:

Error   1   NuGet Package restore failed for project MyProject: The remote server returned an error: (401) Unauthorized..       0   0   

1 个答案:

答案 0 :(得分:3)

使用“管理NuGet包”对话框! 不要依赖Visual Studio中的构建/重建,期望它将恢复丢失的包。打开项目的“管理NuGet包”(右键单击一个失败的项目并选择该选项),您将看到一条消息“此项目缺少某些包...”,并带有“恢复”按钮。使用该按钮进行恢复将解决这些身份验证问题。