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

相關問題