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