不少團隊經歷時間的積澱以後,都會有不少的可重用的公共技術組件。大部分的團隊都會把這些公共組件生成程序集(dll)後,放到GIT或SVN的一個公共目錄裏面,以供各個項目中使用。起初在項目不多又或者是公共組件很少的時候,這樣看起來也沒有多大問題。可是隨着團隊愈來愈大,項目的組件增多,所封裝的可重用組件愈來愈多,一些問題就會慢慢暴露出來。這個時候若是仍是使用這種方式去管理程序集,顯然就不太合適了。git
咱們知道,在Java中比較經常使用的包管理工具,如Maven。實際上在不少大公司裏面都會搭建本身公司的Maven私服,以管理公司的一些公共技術組件。github
實際上在.net中也有,你們也絕對不陌生,就是Nuget, 相信每一個人都從官方的nuget服務器上下載過一些第三方組件,如:log4net、quartz.net等等。web
Nuget是一個.NET平臺下的開源的項目,它是Visual Studio的擴展。在使用Visual Studio開發基於.NET Framework的應用時,Nuget能把在項目中添加、移除和更新引用的工做變得更加快捷方便。這是維基百科中的定義,實際上Nuget就是一個包管理器,相似於Java的Maven,能夠幫助咱們更方便的管理dll,這也是微軟提供給.net平臺的一個正確的包管理工具。api
而如Maven同樣,Nuget也能夠搭建本身的私服。這篇文章就來簡單介紹一下如何搭建屬於大家團隊本身的Nuget服務器。緩存
從官方Nuget服務器上搜索nuget.server,點擊項目url中的github路徑。從github中下載nuget.server的源碼。
下載並解壓後的文件路徑以下圖所示:
服務器
下載NuGet命令行打包工具nuget.exe
下載地址:https://www.nuget.org/downloads併發
打包咱們程序框架
使用nuget.exe打包程序集
在.csproj文件目錄下執行命令spec工具
nuget.exe spec //spec 在.csproj文件目錄下執行命令
此時會生成一個.nuspec文件,打開這個文件
修改其中的xml屬性便可(注意此處一些信息最好和AssemblyInfo.cs中的程序集信息一致)
修改完成後繼續執行pack命令
這時將生成的.nupkg文件直接copy到nuget服務器IIS目錄下的packages文件夾內便可
也可經過命令push推送至nuget服務器url
nuget push *.nupkg -s http://127.0.0.1:8005 123456 //push 程序包路徑 選項 地址 apikey //apikey 能夠在服務器webconfig中配置
完成後便可查看或使用咱們發佈的程序集
若是你認爲以上就結束了,那你就太天真了,實際上,咱們團隊在搭建與使用過程當中仍是遇到了不少問題的,若是搭建使用中踩到了一樣的坑能夠參考下面幾點。
今天簡單介紹瞭如何搭建本身團隊的Nuget服務器,以及如何打包併發布程序集到Nuget。實際上,大多數的.net團隊仍然是在用SVN或GIT的方式去管理dll,包括我所在的某大廠,雖而後來框架研發部,提供了一個自主研發的管理工具,但我我的感受仍是不如Nuget更好用一些。
若是你的團隊不知足如今的程序集管理方式,那麼不妨換個姿式,搭建一個屬於大家團隊本身的Nuget服務器吧!固然,若是你有更好的方式,歡迎與我留言分享!