一、NuGet是什麼? NuGet是Microsoft開發平臺的程式集包管理器,它由客戶端工具和服務端站點組成,客戶端工具提供給用戶管理和安裝/卸載軟體程式包,以及打包和發佈程式包到NuGet服務端站點等功能,服務端站點存儲已經發行的軟體包,併為NuGet客戶端軟體包庫提供服務,使軟體包共用給其他的 ...
一、NuGet是什麼?
NuGet是Microsoft開發平臺的程式集包管理器,它由客戶端工具和服務端站點組成,客戶端工具提供給用戶管理和安裝/卸載軟體程式包,以及打包和發佈程式包到NuGet服務端站點等功能,服務端站點存儲已經發行的軟體包,併為NuGet客戶端軟體包庫提供服務,使軟體包共用給其他的開發者。
二、NuGet服務端站點的搭建
1、打開Visual Studio創建空的Web站點,如圖:
2、打開管理NuGet程式包,選擇程式包源為:nuget.org 然後在搜索框中輸入:NuGet.Server,如圖:
當然你也可以在程式包控制臺中輸入下麵的命令直接安裝
install-package NuGet.Server
3、安裝完成之後,打開web.confg 修改apikey 如圖:
如果requireApiKey的值設置為false,那麼apikey就可以設置為空,我這裡隨便搞了一個,然後服務端的站點就完成了,你可以將這個站點部署到伺服器的IIS裡面,看一下最後運行的結果:
三、NuGet客戶工具打包和發佈程式包到剛剛搭建的NuGet伺服器上與其他開發者共用程式包
1、首先我們得安裝NuGet客戶端工具,我的Visual Studio 2015是自帶的(我選擇了完全安裝模式),如果你的沒有那麼可以到nuget上下載安裝包,安裝包的下載地址:https://www.nuget.org/
2、將程式集打包
在打包之前先要創建一個打包清單文件.nuspec, 你可以從頭到尾手動創建打包清單,或者輸入下麵的命令進行創建:
nuget spec
其更多選項可以參考其官方文檔:https://docs.nuget.org/ndocs/tools/nuget.exe-cli-reference#spec
這個命令你可以在visual studio的程式包管理控制台裡面執行,也可以在cmd裡面執行,但都需要路由到需要打包的項目目錄下運行,如圖:
我先把它改名為dogstar.nuspec,然後你可以使用任何文本編輯器來打開這個文件,如圖:
在這裡我簡單介紹一下下麵的的幾個元素,其他更多請參照官方文檔(https://docs.nuget.org/ndocs/schema/nuspec)
id:程式包的唯一標識符
version:發行版本號
description:程式包的功能詳細說明
releaseNotes:本次發行的版本有那些主要變更,例如:修複bug,支持全文檢索
dependencies:此程式包依賴於哪些Nuget上的程式包
files:包含程式集文件和內容文件
程式集文件的目標根目錄必須是lib,如:target="lib" 或者 target="lib\net40",lib目錄下的文件將會安裝到目標項目的bin目錄下
內容文件的目標根目錄必須是content,如:target="content\scripts" 或者 target="content\theme\css",content目錄下的所有文件和文件夾都會被安裝到目標項目下的根目錄下
這裡需要提醒一下的就是路徑不可以用“/”分隔符,必須使用“\"分隔符
exclude屬性指定不包括的文件;
關於files節點的更多內容請參照官方文檔:https://docs.nuget.org/ndocs/schema/nuspec#including-assembly-files
文件清單創建完畢之後,執行下麵的命令進行打包:
nuget pack dogstar.nuspec
執行命令之後會生成一個 dogstar.1.0.0.nupkg 文件,這裡你會看到一堆的警告,其實打包還有可以用visual studio的項目文件(*.csproj)進行打包,具體操作請參照官方文檔:https://docs.nuget.org/ndocs/create-packages/creating-a-package#creating-the-package
到此為止打包的步驟就已經完成了,下麵介紹發佈到nuget伺服器上的操作
3、將nuget包發佈到伺服器上
發佈的操作相當簡單,其實在前面的第二部分的Nuget伺服器站點搭建完成之後運行站點後的那個效果圖裡面就已經將方法輸出來了,請看下麵的命令:
nuget push dogstar.1.0.0.nupkg 4003d786-cc37-4004-bfdf-c4f3e8ef9b3a -Source http://localhost:27928/api/v2/package
四、驗證結果
NuGet服務端站點和客戶端打包發佈都已經介紹玩了,現在回到nuget管理程式包裡面驗證一下結果,在驗證結果之前,首先添加程式包源的設置,如圖:
然後在程式包源的下拉中選擇client test 將會看到我們剛剛發佈的dogstar程式包,如圖:
ok,馬上點擊安裝看一下
打包的文件已經正確安裝到測試項目裡面,驗證結果成功!