2013-04-11 21 views
3

當其他開發商自於TFS倉庫最新的,似乎解決方案中的每個項目的引用不正確地連接起來。當包存儲在diff文件夾本地時,nuget包項目引用會搞砸嗎?

從我假設,如果你使用的NuGet,它會自動拉必要的庫沒有你的?我是否必須進入vs.net並告訴它下載這些庫?

還是我補充一下到TFS,我不應該有這樣的,這是假設我的包存儲在特定的路徑時,當其他開發者下載資源庫,他們可能不?

這是vs.net 2010

+0

庫本身是否在TFS中?默認情況下,TFS不會提示您簽入'.dll'文件。 – 2013-04-11 16:11:25

+0

瑞恩,不,他們不在TFS裏,只是看着,但是爲什麼我可以在新電腦上下載它們呢?我甚至沒有看到選擇? – loyalflow 2013-04-11 16:19:48

+0

您需要啓用NuGet軟件包還原。工具 - >選項 - >軟件包管理器:確保選中「允許Nuget在生成過程中下載缺失的軟件包」。 – gregpakes 2013-04-11 16:27:46

回答

3

我有一些類似的問題,所以我切換的NuGet模式不commit packages to source control

  1. 選項 - >軟件包管理器 - >一般並勾選「允許的NuGet到構建過程中下載缺失的packeges」複選框,然後按「確定」。
  2. 右鍵單擊在Visual Studio解決方案資源管理器解決方案,並選擇「啓用NuGet包還原」。

我還添加了.nuget包的內容文件夾(在該解決方案的文件夾中創建前面的步驟)在solution folders解決方案。這樣我可以用鼠標右鍵單擊該解決方案,並選擇「入住......」和所有相關的文件將被檢查。如果你這樣做,那麼它是非常重要的,沒有一個包文件(如.dll文件)都包括在解決方案或TFS中,因爲這會導致NuGet無法正常工作。如果您選擇不這樣做,那麼你就需要在源控制使用掛起的更改窗口或通過在解決方案文件夾右擊資源管理器並選擇在更改檢查「簽入掛起的變化......」

我.nuget解決方案文件夾包含下列文件:

  • Notes.txt描述我是如何設置的NuGet了,爲什麼我把它我做的方式,以及任何使用說明/問題。
  • NuGet.config
  • NuGet.exe
  • NuGet.targets

我的包解決方案文件夾包含下列文件:

  • repositories.config
2

對於一些因爲「允許NuGen下載缺失的軟件包」並沒有爲我削減。我注意到在我的解決方案中爲nuget創建了一個「packages」文件夾。我已經檢查過,但TFS默認過濾出.dll文件。所以我不得不回到我的源代碼管理器中的「packages」文件夾中,然後添加.dlls並檢查更改。

例如,這是在Visual Studio 2013中的步驟在檢查的EntityFramework我爲.dll從的NuGet(這裏假設你已經檢查了你的「套餐」文件夾中沒有的.dll)

  1. 在得到源代碼控制管理通過點擊小箭頭向左
  2. 找到你的包文件夾
  3. 打開文件夾找到您打開
  4. 右鍵單擊「net45」文件夾中的文件夾中的「LIB」文件夾(或「net40 「或其他)並選擇上下文opti在「添加項目到文件夾。
  5. 從添加到源代碼控制彈出窗口中,雙擊「net45」文件夾。
  6. 您應該看到
  7. 被排除在你的初步檢查,一些.dll文件(S)點擊丟失的文件並點擊「下一步」按鈕...
  8. 希望.dll文件是在「項目現在添加「標籤...如果沒有按下屏幕底部的按鈕以」包含項目「。
  9. 點擊完成按鈕
  10. 入住此掛起更改
  11. 現在做的新的工作空間解決方案的獲取。