关于堆栈有一个类似的帖子,但它可能对我的问题没有帮助,因为我使用的是Visual Studio 2015。
如何在VS2015中显示“启用NuGet包恢复”选项?
我选择文件>新项目,并创建一个空ASP。NET Web应用程序。我在找这个菜单项。
我应该提到,我已经在我的项目文件夹中寻找任何预先存在的nuGet文件,没有。
关于堆栈有一个类似的帖子,但它可能对我的问题没有帮助,因为我使用的是Visual Studio 2015。
如何在VS2015中显示“启用NuGet包恢复”选项?
我选择文件>新项目,并创建一个空ASP。NET Web应用程序。我在找这个菜单项。
我应该提到,我已经在我的项目文件夹中寻找任何预先存在的nuGet文件,没有。
当前回答
去visual studio的参考,看看哪些包丢失了。 现在在可视化中右键单击解决方案,然后在文件资源管理器中单击打开的文件夹。 现在打开包文件夹,删除丢失的包文件夹。 打开visual studio并构建解决方案。所有丢失的包都将被恢复。 如果我帮忙了,请把这个标记为答案。
其他回答
我想对于asp.net 4项目,我们将转向自动恢复,所以不需要这样做。对于较老的项目,我认为需要进行一些转换。
http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Ivan Branets的解决方案基本上为我解决了这个问题,但更多的细节可以分享。
在我的情况下,我在VS 2015使用自动包恢复和TFS。这些都是默认的东西。
问题是,当另一个开发人员试图从TFS获得解决方案时,一些包没有完全恢复。(为什么,我还不太确定。)但是packages文件夹包含了一个用于引用和NuGet包的文件夹,但是它没有被展开(比如一个包含.dll的lib文件夹丢失了)。这一半,但不是很正确的概念阻止了包装的恢复。
您可以认出这一点,因为该引用将有一个黄色感叹号,表示未被解析。
因此,删除包中的文件夹的解决方案消除了包恢复阻塞问题。然后,您可以在顶部解决方案级别上单击右键,以获得恢复包的选项,现在它应该可以工作了。
我也面临着同样的问题。我试图将在Visual Studio 2015上创建的MVC项目添加到我在Visual Studio 2019上做的解决方案中。
在Visual Studio 2019上已经有了现有的项目,所以添加这个我在VS 2015上创建的现有项目会触发同样的错误。我已经尝试了所有的答案,但都不能解决问题。
我所做的就是把。nuget文件夹放在解决方案文件夹上。原来文件夹的层次结构是这样的:
Solution Folder (VS 2019)
-> MVC 1 Project
-> MVC 2 Project
-> MVC 3 Project (Project that I am adding)
-> .nuget folder (It contains a .nuget folder)
所以当我移动解决方案文件夹本身的.nuget文件夹时,问题就解决了:
Solution Folder (VS 2019)
-> MVC 1 Project
-> MVC 2 Project
-> MVC 3 Project (Project that I am adding)
-> .nuget folder (It contains a .nuget folder)
如果你有任何问题或缺少任何包,你可以简单地右键单击你的项目,选择“管理NuGet包的解决方案…”。点击后,屏幕会打开,你会看到一个菜单栏上写着“还原”:
单击它,所需的软件包将自动安装。 我相信这就是你要找的,这解决了我的问题。
对于.NET核心项目,在NuGet包管理器控制台中运行dotnet restore或dotnet build命令(会自动运行恢复)
您可以从运行控制台
> NuGet包管理器>包管理器控制台