34

我跟随this easy tutorial开始使用C#中的Google+ API进行编码。不过,我已经卡住小时的步骤3中,其中,第一子步骤:在Visual Studio 2013上启用NuGet包还原

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

当我点击Projet时,没有选项“启用NuGet包恢复”。

There is a Manage Nuget Packages选项,但没有任何恢复按钮或选项。

项目不建,并给我的错误:

Error 1 This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105 . The missing file is 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:\项目\ CONTOSO> nuget.exe恢复
  • d:\项目\ CONTOSO> nuget.exe恢复contoso.sln
  • d :\ projects> nuget.exe restore contoso

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

+0

可能是因为Visual Studio Express中没有此选项(如果使用的话)。也许试试看Visual Studio Professional或Ultimate吧? 2013年将是一个不错的选择。我也遇到过Google文档的问题。 – mihai 2014-10-11 15:55:52

+0

我不认为它是Express,它只是Visual Studio 2013. – user3180077 2014-10-11 16:07:48

+0

请参阅:http://www.xavierdecoster.com/migrate-away-from-msbuild-based-nuget-package-restore – jessehouwing 2014-10-11 16:20:04

回答

12

重命名.nuget文件夹,然后右键单击解决方案。然后启用Nuget包恢复应该是可见的。

+1

下载客户端示例太精巧了。右键单击解决方案(不是项目!),您可以在其中找到“管理解决方案的Nuget包”。在那里你可以检查:“允许Nuget下载缺失的软件包” – 2015-07-28 06:27:54

27

你不想使用基于项目的Nuget包恢复!

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

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

编辑不知道什么用downvotes:

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

What the NuGet team is now recommending is both a lot cleaner and a lot simpler. In short, you don't do anything special, and it just happens! This is because NuGet now always restores packages before building in VS. So no changes whatsoever are needed on your files, which is beautiful!

因为人们仍然有编辑包含更多信息的问题:

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

+1

这是否意味着每一次构建你的nuget软件包都会被恢复?这不会大大减慢我的构建? – 2015-08-27 15:03:53

+1

@HaraldDutch只有在它们丢失的情况下,如果包已经存在,它不会导致任何额外的减速。 – John 2015-09-08 22:38:54

+0

这个答案似乎错过了一点。解决方案和项目似乎被自动配置为不自动更新Nuget包。我有最新的Nuget,并没有在构建中丢失DLL。在启用“Nuget Package Restore”解决方案和项目级别后,它们都在构建版本上更新。 @HaraldDutch,有正确的方向。 – 2015-10-11 18:42:44

6

我觉得你只是想知道在哪里启用“允许Nuget下载缺失的软件包”

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

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文件的文件夹。

以非默认方式设置文件夹路径可能并不常见,但我的是,而且这些信息对我来说会很有用。

+1

是的,我复制了整个解决方案文件夹到导致NuGet问题的另一个位置。正如你所建议的那样,项目文件仍然有一些相对路径到现在缺少文件夹。手动编辑项目文件修复了这个问题。 – user194715 2015-05-23 00:27:48

+0

它适合我。顺便说一句,编辑我们把Nuget包裹的地方是另一种选择。为了做到这一点,只需要在nuget.config文件
<添加键= “RepositoryPath” 联价值= “$ \ .. \ .. \ .. \包”/> 添加配置
http://stackoverflow.com/a/19259947/2793768 – 2015-10-05 04:14:58

+0

虽然我不upvoting,因为它似乎并没有具体到这个问题,我很高兴你发布这个答案,因为它帮助我我自己的一个非常具体的问题 - 我曾经在很久以前的项目中暗示道路不再正确。修复它们,一切正常。那谢谢啦! – 2015-10-27 12:46:43

48

要找到菜单项:“启用nuget包恢复”,请在解决方案资源管理器中右键单击解决方案 - 不在项目中。

你得到一个消息:

Do you want to configure this solution to download and restore missing NuGet packages during build?

难道这不是你要找的东西?

+0

显然你也需要在项目基础上启用 – 2015-10-11 18:39:59

+0

如果我右键点击一个项目,我不会看到“启用Nuget包恢复”,与右键单击解决方案不同。那么我们还需要在项目基础上启用什么? – 2015-10-12 09:23:32

+0

一旦启用,该选项消失。我们可能使用稍微不同的版本或配置的解决方案。我的回应可能是情境。仍帮助我,但我建议将此添加到您的答案中。 Ronalds有另一部分。 – 2015-10-12 12:14:08

1

如果你右键点击一个项目,并没有看到“启用Nuget Package Restore”选项,你不看这个选项的原因是你没有安装最新版本的nuget软件包在Visual Studio中。

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

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

0

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

+0

你能否详细说明一下? – Kmeixner 2016-04-14 17:10:05

+0

@Kmeixner因为我不得不从多个项目中生成新的解决方案,所以还没有保存新的解决方案(.sln)文件。在您创建解决方案文件之前,右键单击时,“启用的Nuget包恢复”不会显示。 – nwestfall 2016-04-14 17:11:59

相关问题