【過程改進】10分鍾進階Nuget


目錄

  nuget初識

  nuget本地包

  nuget解決依賴沖突


nuget是什么

  .net版的maven(java)? 如果你用過windows的chocolatey,mac的homebrew或許更容易理解他,先來回顧下以前我們是如何處理或者碰到過的問題。

1.假如我需要合並2個項目,這2個項目是不同的作者,項目中都使用到了log4net並且版本不同,那么你需要做一系列的改動來保證配置文件的正常工作。

2.同樣在團隊合作中,隨便使用某個源代碼管理工具,一般每個人在本地都有一個工程副本,對於第三方的(或者公用的)程序集(例如Common,Utility等)引用或許大家會指定一個相對的路徑。但是對於一次版本更新維護成本,或許也能接受。

3.項目依賴問題,如果組件A依賴組件B,組件B關聯組件C... 如果工程不是自己從頭開始掌控或者直接就是修改前任的代碼,某些組件莫名丟了或者其中的一個版本升級了....

4.在.net工程中添加js或者程序集有時候所需要的安裝工作可能不僅僅是copy一個js或者js,還需要關聯的js,css,jpg,config有的甚至要添加module和handler,在人為的操作和確認過程中難免會遇到一些磕磕絆絆。

所以nuget誕生了

nuget能做什么

  NuGet 是一種 Visual Studio 擴展,它能夠簡化在 Visual Studio 項目中添加、更新和刪除庫(部署為程序包)的操作。 NuGet 程序包是打包成一個文件的文件集,擴展名是 . nupkg,使用開放打包約定 (OPC) 格式。解決上述的問題,nuget對於版本的更新迭代,程序集的共享,管理都有着巨大的作用,如果你還在徒手添加程序庫,你,out了!

安裝,引用,卸載,更新

  最簡單的方法是從“Tools”(工具)|“Extension Manager”(vs2013中是Extensions and Updates)菜單選項啟動 Visual Studio Extension Manager。 單擊“Online Gallery”(聯機庫)選項卡查看可用的 Visual Studio 擴展名

  

  需要引用庫的時候,只要篩選出庫的名稱然后點安裝,會提示你選擇需要安裝的項目

  

  卸載同樣簡單,在已安裝中選中需要卸載的庫點擊管理,去掉已安裝項目的勾選即成。

  

  如果要更新到最新版本,在擴展包管理器窗口中有需要更新的一覽列表

  

  如果要更新到指定版本,需要多一些其他的操作,首先找到nuget的官方網站http://www.nuget.org/,篩選出要安裝的庫

  

  這里我們選擇log4net

  

  歷史版本變全在這里了。

  回到Visual Studio從tools中打開包管理器

  

  鍵入指定的版本號,注意要安裝的默認項目

  

  至此,對nuget應該已經有了初步的了解


 

  下面我們來看下如何管理本地的包

  首先從tools|Options中選中包管理,除了第一個官方源以外下面都是可以自定義的。如果是團隊項目還可以指向一個共享目錄。

  

  那么如何制作我們本地的包呢,首先你要准備nuget package explorer

  

  拖入你要管理或者共享的庫

  

  保存成.nupkg即可。另外引用nuget管理的工程在根目錄下都會存在一份配置文件packages.config,里面可以看出所引用的包的信息以及版本。

  


  還有一種特殊的情況就是假如你做開源項目的擴展,例如umbraco,它們有時候會引用一些更改過的無簽名或者公鑰的組件。這個時候如果你從官方源中引用對應的組件會導致沖突。

  

  這里使用ildasm來查看下區別

  

  

  對於這種情況,解決辦法之一就是建立一個適配器一樣的中間件,也就是用本地包包含一個對應的無公鑰的庫。

  

  最近會更新一些過程改進的內容,希望對大家有幫助。

 

  

 


免責聲明!

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



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