前言web
nuget 已經不是什麼新東西,它是vs的一個擴展工具,可讓咱們在項目中添加、刪除、更新引用變得更加快捷方便。如今有許多傳統公司對dll的管理仍是很落後的,有些甚至時經過發送dll文件,這樣作的直接缺點就是很繁瑣、容易出錯。以前就有試過一個dll的版本不對,測試人員更新到線上接口直接就掛了,接着就是花一堆時間定位問題。nuget可讓咱們很方便的管理引用,減小許多沒必要要的麻煩。接下來就圖文講解一下如何在本身計算機、公司內部服務器,或者是nuget 服務器搭建本身的nuget庫,本篇沒有高級的東西,只對新手有參考價值。api
搭建包服務器服務器
1. 安裝nuget工具mvc
這個就很簡單了,若是你的vs尚未那是不行的。直接在【工具】->【擴展和更新】 搜索一下nuget 便可安裝,安裝後在項目右鍵引用就會出現【管理Nuget程序包】菜單,在這裏咱們就能夠安裝所須要的引用,例如EF,Newtonsoft,jQuery 等等。下面的【程序包管理控制檯】能夠經過命令來安裝引用,界面去操做是同樣的。app
2. 搭建nuget服務器asp.net
nuget 服務器其實就是一個站點,經過請求去獲取須要的包。因此咱們須要作的就是搭建一個web站點。ide
咱們新建一個asp.net mvc 項目,在【程序包管理器控制檯】輸入 Install-Package Nuget.Server -Version 2.11.1 便可安裝 nuget 相關服務,安裝後咱們的項目就會多一些文件,web.config也覆蓋便可。具體這些是作什麼的,咱們不用管。工具
2.1 須要注意的是,這裏Nuget.Server 有必定的依賴,因此咱們要選擇合適的版本,具體能夠再這裏看:http://www.nuget.org/packages/NuGet.Server/2.11.1測試
2.2 web.config 幾個配置,安裝成功後,會多以下幾個配置網站
<add key="requireApiKey" value="true" /> 指示上傳包到服務器是否須要apiKey,通常爲true
<add key="apiKey" value="" /> 能夠看作密匙,在上傳包的時候要用到的
<add key="packagesPath" value="" /> 包的位置,默認是 ~/Packages
<add key="allowOverrideExistingPackageOnPush" value="false" /> 是否容許覆蓋已存在的包,能夠設置爲true
2.3 安裝後直接發佈網站到iis便可,沒錯,就是這麼簡單!!!
3. 將nuget服務添加到nuget管理工具
選擇【工具】->【庫程序包管理器】-> 【程序包管理器設置】,而後把咱們建立的服務站點加在這裏
3.1 這裏要注意有 /nuget 路徑,具體能夠看站點的路由代碼。
這個時候咱們在【引用】右鍵【管理Nuget程序包】這裏就能夠看到咱們新增的服務了。接下來咱們要作的就是把包放在這個服務裏就好了。
4. 編寫dll,上傳到服務器
咱們隨便編寫一個dll,而後使用包管理器 NuGetPackageExplorer 來發布,這裏個但是化的包管理工具。
4.1 在NuGetPackageExplorer 【Edit】->【Edit Metadata】建立一個Package Metadata,這裏能夠填寫dll的一些信息,你們看起來一看很熟悉的,若是咱們的dll有其它依賴,也均可以在這裏添加。其中Id 是比較重要的,就是咱們安裝時要用的,也就是 Install-Package XXX 這裏的XXX。
4.2 接着在右邊工做區右鍵新增一個Lib文件夾,再新增剛剛編寫的dll
4.3 保存。這個時候會生成一個 .nupkg 的文件,能夠把它看作是一個壓縮文件,nuget就是依靠解析它來獲取實際的dll文件的,咱們實際須要也是這個文件,不須要具體的dll。接着在【File】->【publish】便可,這裏默認是發佈到nuget官網,咱們須要去註冊帳號才能拿到key,不過咱們也能夠選擇上面本身建立的站點,key就是配置文件的key。
這裏可能會出現一個Not Allowed的錯誤,咱們須要去【服務的Web站點】->【模塊】,找到【WebDAVModel】 並刪除它便可。
4.4 發佈成功後,在站點的~/Packages 目錄下就能夠看到變化了。接下來就能夠像添加其它引用同樣用Nuget從咱們本身的服務器添加引用了;也能夠在控制太用命令Install-Package TestNugetServerDll 來安裝。
總結
其中還有一些坑,踩到了解決就好了,百度也有不少資料。