35

我正在按照这个简单的教程开始使用 C# 中的 Google+ API 进行编码。但是,我在第 3 步被困了好几个小时,其中的第一个子步骤是:

  1. 在 Visual Studio 中,单击“项目”>“启用 NuGet 包还原”> 在对话框中回答“是”。
  2. 右键单击 gplus-quickstart-csharp 项目并选择管理 NuGet 包。
  3. 单击“管理 NuGet 包”窗口上的“还原”。这将安装 Google API 客户端库。

当我单击 Projet 时,没有“启用 NuGet 包还原”选项。

一个管理 Nuget 包选项,但没有任何还原按钮或选项。

该项目没有建立并给我错误:

错误 1 ​​此项目引用此计算机上缺少的 NuGet 包。启用 NuGet 包还原以下载它们。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkID=322105。丢失的文件是 C:\Users\Documents\google+\gplus-quickstart-csharp\.nuget\NuGet.targets。C:\Users\Documents\google+\gplus-quickstart-csharp\gplus-quickstart-csharp\gplus-quickstart-csharp.csproj 201 5 gplus-quickstart-csharp

我去了微软网站,它只重定向到 NuGet 文档,在那里我没有找到任何有用的东西。我尝试了以下命令(在示例中进行了描述):

  • D:\projects\contoso> nuget.exe 还原
  • D:\projects\contoso> nuget.exe 还原 contoso.sln
  • D:\projects> nuget.exe 还原 contoso

但无济于事。是的,NuGet 已安装。有任何想法吗?谢谢!

4

7 回答 7

52

要找到菜单项:“启用 nuget 包还原”在解决方案资源管理器中右键单击解决方案- 而不是项目。

你收到一条消息:

是否要配置此解决方案以在构建期间下载和恢复缺失的 NuGet 包?

那不是你要找的吗?

于 2015-04-16T07:25:09.537 回答
27

您不想使用基于项目的 nuget 包还原!

确保您拥有最新的 Nuget 版本(工具 -> 扩展和更新)

当你去构建项目时,它应该告诉你它需要下载 nuget 包(或者可能只是自动下载它们)。

编辑不确定反对意见是什么:

http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html

NuGet 团队现在推荐的内容既干净又简单。简而言之,你没有做任何特别的事情,它就发生了!这是因为 NuGet 现在总是在构建 VS 之前恢复包。因此,您的文件不需要任何更改,这很漂亮!

由于人们仍然在编辑以包含更多信息时遇到问题:

https://docs.nuget.org/consume/package-restore#common-issues-with-automatic-package-restore

于 2014-10-14T19:20:29.323 回答
12

重命名您的 .nuget 文件夹,然后右键单击您的解决方案。然后应该可以看到启用 Nuget 包还原。

于 2014-10-14T19:09:11.367 回答
6

我想你只是想知道在哪里启用“允许 Nuget 下载丢失的包”

在VS2013中:右键单击项目选择“管理NuGet包解决方案”然后单击“设置”在新对话框中单击“管理NuGet包管理器”根级别勾选/取消勾选“允许NuGet下载丢失的包”

于 2015-01-12T08:39:45.880 回答
4

我遇到了这个问题,并找到了一个可能对你有用也可能对你不起作用的修复程序。我不得不编辑 csproj 文件,因为它们指向错误或不存在的包文件夹。

在您的 csproj 文件中查找参考路径,并确保包文件夹路径正确:

<HintPath>..\packages\path\to\file.dll</HintPath>

可能是因为不寻常的文件夹设置,它需要是..\..\packages. 此外,在顶部,NuGet 添加了这一行:

<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir>

如果您必须编辑您的 HintPaths,您可能还需要编辑它。在我的示例中,您会将值更改为..\..\. 最后,在底部,NuGet 添加了一个名为 的目标EnsureNuGetPackageBuildImports。您将看到几个属性以及其中的..\packages路径。再次使用我的示例,您必须将其更改为..\..\packages. 所有这些值的基础当然是包含 csproj 文件的文件夹。

以非默认方式设置您的文件夹路径可能是不寻常的,但我的方式是,这些信息对我很有用。

于 2015-03-23T14:01:00.100 回答
1

如果您右键单击一个项目,并且没有看到“启用 Nuget 包还原”选项,您没有看到此选项的原因是因为您没有在 Visual Studio 中安装最新版本的 nuget 包。

以下步骤将向您展示如何为您正在使用的 Visual Studio 版本安装适当的 nuget 包。单击工具-> 扩展和更新。将出现扩展和更新对话框。单击对话框左侧栏中的在线。您应该看到列表中的第一个包“Visual Studio 2013 的 Nuget 包管理器。单击“下载”按钮进行安装。然后您可能必须重新启动 Visual Studio。

现在重新打开您的解决方案并右键单击解决方案名称。您现在应该会看到一个对话框弹出,询问您是否要为此解决方案恢复包。如果您选择“是”,那么无论何时您构建解决方案,nuget 都会尝试下载您的解决方案正在使用的相应包。

于 2016-01-22T02:40:47.310 回答
0

在我的情况下,我刚刚创建了一个新的解决方案,解决方案文件尚未保存。确保在“启用 Nuget 包还原”之前保存解决方案

于 2016-04-14T16:51:10.310 回答