NuGet 是什麼? 理解與使用

NuGet 是什麼? 理解與使用

NuGet 是一個自由開源軟件包管理系統,用於Microsoft開發平臺,以前稱NuPack。

NuGet 作爲 Visual Studio 擴展,能夠簡化在 Visual Studio 項目中添加、更新和刪除庫(部署爲程序包)的操作。NuGet 包是打包成單個ZIP文件,文件擴展名是 .nupkg,使用開放打包約定(OPC)格式,包好編譯代碼(Dll)、與該代碼相關的其他文件以及描述性清單(包含包版本號等信息)。從 Visual Studio 2012開始,缺省預安裝了 NuGet 。

【定義】

NuGet 是一個包(package)管理平臺,確切地說,是.net 平臺的包管理工具,它提供了一系列客戶端用於生成、上傳和使用包,以及一個用於存儲所有包的中心庫即NuGet Gallery,如果有需要也可以搭建自己的私有 NuGet 庫。

NuGet 的實現均爲開源項目,包括了客戶端工具、服務器、官方網站,以及各語言的文檔等。這些項目可以在下面的鏈接中找到:https://github.com/NuGet

【應用】

從一件事情的發展順序來說,NuGet 是用來管理項目庫(下面統稱爲程序包)的,那麼首先,程序包應該放到哪裏呢?

1.程序包放哪裏?

默認的,它們位於 nuget.org 的官方 NuGet 程序包庫中。此庫公開了一個 OData 源:

packages.nuget.org/v1/FeedService.svc

一般在 NuGet 官網註冊一個賬號,驗證後可獲得一個 API Key,它就是以後用來發布程序包的 APIKey。還有一種情況,自己搭建 NuGet 服務器,發佈後,在VS中添加本地站點到包數據源,自己全權管理自己的程序包,不借助於第三方平臺。(推薦一篇博客,圖文並茂講解如何搭建自己的NuGet 服務器:https://kb.cnblogs.com/page/143192/

2.程序包從哪裏來?

一部分是微軟和其他用戶提供的,但是顯然,尤其是在一個企業中,都有自己的一套標準規範和類庫,更具有個性化的特點,這個時候,這個程序包就是從企業內部自己生成出來的。下面簡單說一下程序包的創建和發佈過程:

  • 創建一個類庫項目
  • 從項目生成 NuSpec 清單(nuget spec)
  • 更新項目的程序集元數據(此信息通常位於名爲 AssemblyInfo.cs 的文件中)
  • 使用 NuGet .exe 創建程序包(nuget pack ProjectName.csproj)

3.發佈程序包

根據自己的密鑰,將自己的程序包發佈到庫上:

  • 使用命令將其存儲在安全的位置
  • 存儲密鑰後,使用 push 命令將程序包發佈到庫

有一點需要注意,如果後期類庫更改了,只需要再次創建程序包 pack,再次發佈 push 就可以了(注意版本號的更改)。

4.使用程序包

在自己的程序中安裝和更新程序包即可。具體可以參考一下:https://msdn.microsoft.com/zh-cn/magazine/hh547106.aspx

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章