2017-02-27 78 views
1

我有一個包含大約30個子項目的大型解決方案。每個子項目都依賴於定期更新的nuget包。所以我最終打字例如是否有可能並行運行Nuget更新包

Update-Package AcmeWunderLib

每隔幾天。問題是這個過程需要運行大約10分鐘,結果是每個package.config$ name $ .csproj文件中的變化非常小。是否可以並行執行此操作以提高性能或者是否會導致Nuget自行損壞?

+0

https://github.com/NuGet/Home/issues/1909#issuecomment-282645449 – bradgonesurfing

回答

2

這是真正的解決方案。

DONT運行update-套餐在Visual Studio中

  • 關閉Visual Studio的
  • 打開了的PowerShell從桌面或開始菜單
  • 確保的NuGet是您的路徑
  • 運行以下命令代替devdept.eyeshot爲您的包和WeinCAd.Net.sln爲您的解決方案文件。

nuget update -Verbosity detailed -Id devdept.eyeshot .\WeinCad.Net.sln

整個過程持續超過10秒更少

編輯

我一直在警告說,這並不做的一切,從內Visual Studio中不運行的NuGet更新同樣的事情。以上所做的就是更改DLL的基本路徑。它不能添加和刪除引用。然而這對我的用例來說已經足夠了。

+0

我可以這並不是答案。當你回答你自己的問題時有一個超時。但你可以upvote它:) – bradgonesurfing

+0

很高興知道你已經解決了這個問題。請記下您的答案,這對於有空餘時遇到同樣問題的其他社區是有益的。 –

2

軟件包更新時間由下載軟件包和卸載/安裝軟件包組成。下載操作只會在第一次下載時執行一次,因此卸載/安裝操作將佔用幾乎所有的更新時間。

根據你的日誌,NuGet不到一秒鐘就收集依賴信息,但花費很長時間來卸載/安裝軟件包。在我的測試中,只需要2-5秒就能更新一個項目的軟件包。所以,當你遇到這個問題時,請首先檢查你的機器性能。

對於這個問題,我想向您提供一些故障檢修:

  1. 更新您的NuGet,的NuGet團隊在管道更多的改進爲3.5rc和3.4.5。

  2. 清理包裝飼料中的舊版本包裝和NuGet cache

  3. 禁用除nuget.org以外的其他NuGet存儲庫,也許其中一個超時。

  4. 在其他工作站或構建服務器上測試此問題,並且您可以在新解決方案中創建一些項目來驗證此問題。

希望能幫到你。

+0

在我的書中,2到5秒對於簡單的寫入磁盤應該是相當長的...... – Crono

相關問題