我有一个ASP。NET MVC5应用程序,昨天工作,现在我得到这个错误时,我试图构建:

该项目引用了这台计算机上缺少的NuGet包。

我已经检查了两个选项,允许nuget自动下载和安装丢失的包检查/打开。我还尝试删除packages文件夹中的所有文件,然后让nuget重新下载它们。另外,当我打开nuget并寻找更新时,它说没有需要安装的。我想不出还能做些什么来解决这个恼人的问题。

我还通过右键单击项目并选择该选项启用了nuget恢复。然后,它添加了一个nuget文件夹和该文件夹中的三个项目,但没有采取任何措施来解决问题。我已经尝试重新构建,但仍然得到相同的错误。


当前回答

当我从公司得到一台新电脑,并试图用Git克隆它后构建项目时,我遇到了这个问题。问题是我的NuGet设置不包括一个远程存储库,从中获取包。根据NuGet.org的FAQ,我发现了这个:

我在我的存储库列表中没有看到nuget.org,我怎么把它找回来? 将https://api.nuget.org/v3/index.json添加到您的源列表中,或者 删除% appdata % \ .nuget \ NuGet。Config (Windows)或~/. NuGet/NuGet /NuGet。配置(Mac/Linux),让NuGet重新创建它。

在我的例子中,没有%appdata%\。nuget目录在我的机器上,所以从Visual Studio中,我遵循以下步骤来修复这个问题:

单击工具栏中的“工具> NuGet包管理器>包管理器设置” 在左侧列表中选择“NuGet Package Manager > Package Sources” 单击右上方的绿色+以添加一个新源 “Name: value”设置为“NuGet.org” Source: value设置为https://api.nuget.org/v3/index.json

在那之后,NuGet能够下载它找不到的软件包。

为了消除构建中的错误,我执行了以下步骤:

删除解决方案中的bin和obj目录 单击工具栏中的Build > Rebuild Solution

一旦构建完成,错误就消失了。

其他回答

我很容易地解决了这个问题,右键单击我的解决方案,然后单击启用NuGet包恢复选项

(注:确保你有Nuget Install From Tools—> Extensions and Update—> Nuget Package Manager for Visual Studio 2013。如果不先安装这个扩展)

希望能有所帮助。

是否有可能包已经恢复到错误的文件夹?检查csproj文件中的路径是否正确。

如果它们不同,则可能是由于包现在被恢复到不同的位置造成的。这可能是由NuGet引起的。在指定节点时检查配置文件,如下所示:

<add key="repositoryPath" value="..\..\Packages" />

这些包正在被修复,项目仍然在寻找旧的位置。

我有同样的问题,当我引用类库到我的MVC web应用程序,

问题是两个项目之间的nuget包版本号不匹配。

例如:我的类库有1.2.3的log4net,但我的webapp有1.2.6

修正:只要确保两个项目有相同的版本号引用。

对我来说,它的工作,因为我只是复制了一个。nuget文件夹从一个工作解决方案到现有的,并引用它的内容!

我有同样的错误,但在我的情况下,这是无关的nuget包在所有。 我的解决方案有一个项目,该项目参考了其他项目,这些项目不是我的解决方案的一部分,也没有构建。在用其他解决方案构建它们(或者我也可以将它们包含到我的解决方案中),并在visual studio中重新打开我的解决方案后,问题就解决了。