如果它不在Cache中,NuGet无法找到包

时间:2016-08-16 16:04:41

标签: visual-studio-2013 tfs nuget tfs2013

我有一个NuGet的内部Feed设置。当我尝试构建我的一个项目(通过TFS构建服务器)时,我得到一个错误,NuGet找不到包yyy的xxx版本。

我转到服务器上的NuGet包文件夹,那里有正确的包/版本。但是,NuGet缓存文件夹中不存在包/版本:

C:\ Users [用户帐户] \ AppData \ Local \ NuGet \ Cache

如果我将正确的软件包/版本复制到此缓存文件夹,则构建成功。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

可能与NuGet fails to find existing package重复。如果存在与搜索和程序包还原功能相关的一些服务问题。可能导致程序包还原失败。

如果有这个软件包的缓存版本,NuGet将在那里访问,恢复将正常工作。

解决方案是将您的金块更新到最新版本(至少3.4+)您还可以在GitHub中引用类似的问题:Package restore intermittently fails with "Unable to find version 'x' of package 'y'"

答案 1 :(得分:0)

检查项目中的Nuget.config。它应该具有Source的路径,即服务器上的NuGet包文件夹应该存在于nuget.config文件中。



<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <packageRestore>
    <!-- Allow NuGet to download missing packages -->
    <add key="enabled" value="True" />

    <!-- Automatically check for missing packages during build in Visual Studio -->
    <add key="automatic" value="True" />
  </packageRestore>

  <activePackageSource>
    <!-- this tells that all of them are active -->
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>

  <packageSources>

    <add key="PrivatePackages" value="\\TestPath\nuget" />

  </packageSources>
</configuration>
&#13;
&#13;
&#13;