手把手教你用 Nuget 管理自己的專案庫

令仔很忙發表於2015-09-28

什麼是NuGet?

這裡寫圖片描述

官網上的解釋:NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.

大致的意思:NuGet 是一種 Visual Studio 擴充套件工具,它能夠簡化在 Visual Studio 專案中新增、更新和刪除庫(部署為程式包)的操作。

可以去看一下NuGet 百度百科的介紹。

為什麼用NuGet?

簡單的說NuGet可以是我們的工作更方便,當我們的專案裡要引用到的一些庫時候,比如JQuery、Newtonsoft.Json、log4net等,我們需要從網上下載這些庫,然後依次拷貝到各個專案中,當有的類庫有更新時又不得不再重複一遍很是繁瑣 ,這時就可以考慮使用NuGet來幫我們管理和更新這些類庫,而且更新類庫時會自動新增類庫的相關引用,方便至極。

在我們做專案的過程中體會到NuGet最大的好處就是可以搭建自己的類庫伺服器,在開發1.0和2.0期間,我們是一個系統一個解決方案,當兩個系統之間存在互動時,就需要引用另一個系統的Dll檔案,如果沒有NuGet的話,每一次Dll檔案更新,就需要去拷貝一份,放到專案的資料夾下,在重新引用,過程顯得非常的繁瑣。並且在我們3.0的時候,再次對系統進行了細化,每一個系統的每一個模組一個解決方案,也就是業務顆粒化。可想而知,如果還用拷貝的方式的話,有種作死的節奏~~現在用了NuGet,世界開始變得不同了。

怎麼使用NuGet?

STEP1 在NuGet官網上註冊並獲取API Key

首先,你需要到NuGet上註冊一個新的賬號,然後在My Account頁面,獲取一個API Key,這個過程很簡單,我就不作說明了。

STEP2 下載NuGet.exe

使用之前,需要先下載NuGet.exe,下載連結:http://nuget.codeplex.com/downloads/get/669083為了方便使用,設定機器的PATH環境變數,將其NuGet.exe的路徑新增到PATH變數中。我放在F:\Program files下,所以路徑為F:\Program files。

STEP3 設定API Key

在官網上找到你的API Key
這裡寫圖片描述

開啟CMD,找到NuGet.exe的路徑,並執行,然後輸入下面的命令:

執行結果:

這裡寫圖片描述

SETP4 開發自己的類庫

然後開啟AssemblyInfo.cs檔案,將assembly的屬性設定好,記得再設定一下AssemblyVersion特性,以指定我們類庫的版本。目前使用1.0.0.0版本:

設定好後,編譯整個專案待用。

STEP5 產生並修改nuspec

nuspec是NuGet將專案打包成nupkg的輸入檔案,可以通過nuget spec命令產生。在命令提示符下,進入NugetTest.csproj檔案所在目錄,然後執行:

執行結果:

這裡寫圖片描述

用記事本開啟NuGetTest.nuspec檔案,注意裡面的$xxx$巨集,這些就是引用了AssemblyInfo.cs中的設定值,在編譯產生package的時候,會使用AssemblyInfo.cs中的相應值進行替換。完成編輯後,我們的nuspec檔案如下:

注意兩點:1、$description$使用AssemblyDescriptionAttribute的值進行替換,在產生package之前,一定要記得先編譯專案,否則會提示$description$找不到的錯誤;

STEP6 產生類庫包(Library Package)

在NugetTest.csproj的路徑下,使用下面的命令產生類庫包:

執行結果:

這裡寫圖片描述

STEP7 釋出類庫包

使用下面的命令:

執行時遇到點問題:

這裡寫圖片描述

上面的這個問題,主要原因是因為API Key 一臺電腦只能用一個。如果用第二個API Key在同一臺電腦上釋出另一個package的話就無法釋出,就會報這個錯。

下面是釋出成功的內容:

這裡寫圖片描述

STEP8 測試以及更新類庫包

在解決方案中右鍵解決方案—-管理解決方案的NuGet程式包—-聯機,輸入自己的類庫包名。安裝就可以了。

然後是更新,更新的時候記得更改AssemblyInfo.cs中的版本號的資訊,然後再重新執行一遍下面的cmd:

在開啟測試程式,在更新中找到自己更新的包更新就可以了。

善於利用工具,提高我們的開發效率!

相關文章