NuGet的使用心得


前言

  上星期發布了NuGet的使用和服務搭建后,同時NuGet在部門里也使用了起來。經過這些天的使用,總結了些小技巧和注意點,希望和大家分享下。

問題提出

  使用了NuGet的朋友們估計都知道,在簽入代碼到TFS的時候,會把從NuGet下載的程序包包含並簽入到TFS,而且每更新了一次程序包,都會重新簽入一份新的版本程序包,那么,問題來了,隨着時間推移,程序包的版本會越來越多,那么簽入到TFS代碼庫的程序包也會越來越多,而舊版本又不需要了,沒必要占着空間。

  

  翻看了很多資料,發現【啟用NuGet程序包還原】可以很好的解決問題。

啟用NuGet程序包還原

  開始我看到這個功能,想了半天也沒搞清楚干嘛用的。后來試了一下,發現就是一個自動下載的程序包的功能,可能我這么說得有點含糊。

  在解決方案右鍵,點擊【啟用NuGet程序包還原】,各種確定后發現解決方案里多了個.nuget文件夾,我們暫且先不理是干嘛的。在此之后,我們安裝其他的程序包之后簽入,會發現並未包含已安裝的程序包,而需要簽入的只是幾個config文件和項目文件而已。那么將文件簽入到TFS,其他人獲取最新后只有配置文件變更了,沒有拿到程序包難道編譯不會失敗么?

  

  打開【引用】,發現幾個從NuGet安裝的組件庫的確報黃色感嘆號,不用着急,生成一次項目就可以了,可以從下方的生成信息里發現,解決方案缺少的程序包會自動從NuGet上自動下載與Package.config對應的版本。

  

注意點

  用【啟用NuGet程序包還原】后,會從已配置好的【程序包源】里下載對應的程序包。

  換句話說,假如你在內部NuGet服務下載了程序包並簽入了文件,但某個同事可能是新來的,vs的【程序包源】沒有添加內部程序包源,就會導致無法自動下載程序包,導致編譯報錯。

  因此,我在部門使用的時候要求各位同時在vs里添加上內部程序包源,包括開發和測試。

  另外,在更新程序包的時候,可能因為獨占簽出文件導致程序包更新失敗的,可以在之前更新程序包的時候簽出選擇保持原有鎖,或者在更新失敗后,把更新失敗組件庫刪除了,重新安裝一次。

新想法

  有同事提出,假如每次更新程序包,都得通過【NuGet Package Explorer】上傳,然后打開vs里的【管理NuGet程序包】點擊更新,那多麻煩~~~

  有沒有辦法可以做到發布或生成的時候就上傳程序包,或獲取最新的時候自動更新最新的程序包版本。

  具我了解可以的!因為這些發布程序包和更新程序包都可以通過寫命令行進行操作的,那么再通過寫一個vs插件結合發布和獲取最新,應該是可以實現的。

  如果園子里的朋友有哪位曾經做過,可以分享一下心得。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM