Nuget是什麼
Nuget 是一種 Visual Studio 擴充套件工具,它能夠簡化在 Visual Studio 專案中新增、更新和刪除庫(部署為程式包)的操作。(官方地址)相信大家對這個應該還是很熟悉的,沒有序列化包大家第一時間就是搜尋一個輔助包進行引用,大家有沒有想過這些幫助包是哪裡來的呢? (絕對不是天上掉下來的)
為什麼使用Nuget
- 當我們需要使用序列的時候,如果不使用Nuget中優秀的輔助包,我們就需要自己去實現一個序列話幫助類,這樣我們就不能安安心心搬磚了,全部都寫幫助類庫了,當然我們有現成的輪子直接使用就可以了(自己費老大勁寫出來的輪子可能還有bug)。
- 當然我們也不是不能寫,我之前負責過一個專案,我們的架構師寫了一套核心幫助類,但是沒有使用Nuget進行管理,專案的體量就非常非常大了,一個專案27個類庫如果我們採用這種方式進行管理話我們專案也會變的更簡單。
- 當新專案開始的時候我們也不需要把幫助類庫貼上複製過來了,直接引用專案類庫就完事了,簡單的讓自己飄飄乎。
- 還有Nuget也可以搭建自己的私有幫助類,因為有些公司內部的資訊不方便公開,也可以使用這種方案。
怎麼使用NuGet
- 在NuGet官網上註冊並獲取API Key
- 首先,你需要到NuGet上註冊一個新的賬號,然後在My Account頁面,獲取一個API Key。
- 首先,你需要到NuGet上註冊一個新的賬號,然後在My Account頁面,獲取一個API Key。
- 下載NuGet.exe
- 使用之前,需要先下載NuGet.exe,為了方便使用,設定機器的PATH環境變數,將其NuGet.exe的路徑新增到PATH變數中。我放在F:\Program files下,所以路徑為F:\Program files。
- 設定API Key
- 我們現在就是複製祕鑰,設定到電腦中(nuget setApiKey 你的祕鑰)
- 我們現在就是複製祕鑰,設定到電腦中(nuget setApiKey 你的祕鑰)
- 建立清單
- 建立一個自己的類庫,然後進入專案目錄中使用nuget spec命令建立一個清單.nuspec
- 建立一個自己的類庫,然後進入專案目錄中使用nuget spec命令建立一個清單.nuspec
標記 | 源 |
---|---|
\(id\) | 程式集名稱。 |
\(title\) | AssemblyTitleAttribute 中指定的程式集標題。 |
\(version\) | 程式集的 AssemblyVersionAttribute 中指定的程式集版本。 |
\(author\) | AssemblyCompanyAttribute 中指定的公司。 |
\(description\) | AssemblyDescriptionAttribute 中指定的描述。 |
- 建立程式包
我們在釋出之前可以先修改類庫的資訊
- 如果同一個目錄中只有一個專案檔案,則在執行命令時可以省略專案檔名稱。 nuget pack ProjectName.csproj
- 如果尚未編譯專案,可先用 Build 標記編譯專案,然後壓縮它。 這將在執行 pack 命令之前編譯專案。 nuget pack ProjectName.csproj -Build
此命令將生成名為 ProjectName.{version}. nupkg 的檔案,其中,{version} 的值與 AssemblyVersionAttribute 中指定的值相同。 例如,如果版本是 1.0.0,您的程式包將命名為 ProjectName.1.0.0. nupkg。 - 為了方便開發人員安裝您的程式包,請考慮使用 Symbols 標記建立帶偵錯程式符號的程式包:nuget pack ProjectName.csproj -Build -Symbols除了主程式包之外,此命令還建立符號程式包。 這使安裝您的程式包的其他人在除錯其應用程式時能夠單步執行程式包程式碼。
- 釋出程式包(需要進入.nupkg檔案目錄中執行)
- 當我們完成了上述所有的操作就已經完成了所有操作, 如果你希望你的成果可以幫助其他人你就可以執行此命令上 nuget push dcl.1.0.0.1.nupkg -source nuget.org 程式上傳
- 當我們完成了上述所有的操作就已經完成了所有操作, 如果你希望你的成果可以幫助其他人你就可以執行此命令上 nuget push dcl.1.0.0.1.nupkg -source nuget.org 程式上傳
- 測試以及更新類庫包
- 在解決方案中右鍵解決方案—-管理解決方案的NuGet程式包—-聯機,輸入自己的類庫包名。安裝就可以了。然後是更新,更新的時候記得更改的版本號的資訊,然後再重新執行一遍下面的cmd
nuget pack *.csproj nuget push *.nupkg