1. 程式人生 > 程式設計 >.NET Core中建立和使用NuGet包的示例程式碼

.NET Core中建立和使用NuGet包的示例程式碼

在.NET Core的專案中,如果我們要在專案中引用其它DLL檔案,不建議直接在專案引用中新增DLL檔案(雖然在.NET Core專案中也可以這麼做),建議是去直接下載DLL檔案所屬的NuGet包。這樣最大的好處是我們可以將要引用DLL檔案的所有依賴檔案也一起引入到專案中,這樣保證了引用檔案的完整性,讓其可以正確地執行。

下面我們通過一個.NET Core類庫專案和一個ASP.NET Core專案,來演示怎麼釋出一個NuGet包,並在專案中引用該NuGet包。

首先我們新建一個.NET Core類庫專案"Custom.Library.StringUtils",它包含一個簡單的字串工具類"StringHelper",用來做簡單的字串處理:

using System;
using Newtonsoft.Json;

namespace Custom.Library.StringUtils
{
 /// <summary>
 /// 字串工具類
 /// </summary>
 public static class StringHelper
 {
  /// <summary>
  /// 將字串轉換為大寫
  /// </summary>
  /// <param name="text">字串</param>
  /// <returns>大寫的字串</returns>
  public static string GetUpperString(string text)
  {
   return text.ToUpper();
  }

  /// <summary>
  /// 將一個物件轉換為json字串
  /// </summary>
  /// <param name="jsonObject">物件</param>
  /// <returns>json字串</returns>
  public static string ToJson(object jsonObject)
  {
   return JsonConvert.SerializeObject(jsonObject);
  }
 }
}

注意為了演示我們這個.NET Core類庫專案還引用了其它NuGet包,我們在專案中引用和使用了著名的json處理NuGet包:Newtonsoft.Json

.NET Core中建立和使用NuGet包的示例程式碼

接下來我們要把類庫專案"Custom.Library.StringUtils"釋出為一個NuGet包。

首先由於我們在專案中寫了很多<summary>註釋,我們肯定希望其它的.NET Core專案引用了我們的NuGet包後,也能得到這些<summary>的提示,所以我們要在專案屬性(Properties)上做一些設定:

.NET Core中建立和使用NuGet包的示例程式碼

在專案的屬性上,我們選中Build頁面,這裡有兩個地方要進行設定,首先由於我們是要在釋出的NuGet包中生成XMLdocumentation檔案,來包含<summary>註釋,所以我們要將Configuration下拉框選擇為All Configurations,這樣我們可以在釋出(Release)時也生成XMLdocumentation檔案,而不僅僅是在除錯(Debug)時才生成。然後我們還要確保XML documentation file這個複選框是勾上的,這樣當我們的.NET Core類庫專案釋出後才會生成對應的XML documentation檔案:

.NET Core中建立和使用NuGet包的示例程式碼

其次每個NuGet包其實都有版本號,我們可以在Package頁面,通過Package version來設定當前NuGet包的版本號為1.0.0,如下所示:

.NET Core中建立和使用NuGet包的示例程式碼

然後我們就可以釋出我們的.NET Core類庫專案"Custom.Library.StringUtils"為NuGet包了,在專案上點擊發布(Publish):

.NET Core中建立和使用NuGet包的示例程式碼

在彈出的配置視窗中選擇一個釋出目錄,這裡我們選擇為本地計算機目錄"C:\Local nuget repository",這個目錄也會作為我們後面本地NuGet包管理器的source,實際上我們還可以選擇一臺遠端計算機的共享目錄(例如\\192.168.1.105\Remote nuget packages這種網路共享目錄)作為NuGet包的source目錄,這樣如果我們的開發團隊人員是在一個區域網中,就可以讓每個開發人員的Visual Studio從區域網的共享目錄中獲取需要的NuGet包了。

.NET Core中建立和使用NuGet包的示例程式碼

點擊發布(Publish)後,我們可以在目錄"C:\Local nuget repository"下看到,類庫專案生成的NuGet檔案就已經存在了:

.NET Core中建立和使用NuGet包的示例程式碼

注意生成的NuGet檔名中是包含版本號的,例如現在如果我們在專案屬性(Properties)中的Package頁面上,將Package version改為2.0.0,如下所示:

.NET Core中建立和使用NuGet包的示例程式碼

然後再發布.NET Core類庫專案,我們可以看到在釋出目錄"C:\Local nuget repository"下會再生成一個NuGet檔案,這次版本號是2.0.0:

.NET Core中建立和使用NuGet包的示例程式碼

接下來我們就要在另外一個ASP.NET Core專案中來引用我們建立的NuGet包了,為此,我們新建一個ASP.NET Core專案"AspNetCore3000Message"。

首先我們要配置Visual Studio中尋找NuGet包的source,在Visual Studio中選擇Tools > NuGet Package Manager > Package Manager Settings

.NET Core中建立和使用NuGet包的示例程式碼

然後在彈出視窗中選中Package Sources頁面,然後點選加號新建一個NuGet包source,名稱(Name)為"Local nuget package",路徑(Source)為我們前面.NET Core類庫專案的釋出目錄"C:\Local nuget repository",如下所示:

.NET Core中建立和使用NuGet包的示例程式碼

點選OK按鈕後,我們就將一個本地目錄設定為了Visual Studio中NuGet包管理器的source了,就像前面所說我們還可以將一臺遠端計算機的共享目錄作為source,這樣開發團隊人員的Visual Studio都可以從該共享目錄中獲取NuGet包了。

現在我們在ASP.NET Core專案"AspNetCore3000Message"中,開啟NuGet包管理器:

.NET Core中建立和使用NuGet包的示例程式碼

然後,我們將右上角的Package source下拉框選擇為All,接著在搜尋框中輸入我們前面釋出的.NET Core類庫專案名"Custom.Library.StringUtils",就可以找到我們釋出的NuGet包了,由於我們前面釋出了兩個版本到釋出目錄"C:\Local nuget repository",所以這裡顯示NuGet包的版本也有兩個"1.0.0"和"2.0.0",另外由於我們在.NET Core類庫專案"Custom.Library.StringUtils"中引用了Newtonsoft.Json這個NuGet包,所以我們這裡看到在Dependencies下面顯示我們的NuGet包還依賴於Newtonsoft.Json,這樣在安裝我們的NuGet包Custom.Library.StringUtils時,也會下載和安裝Newtonsoft.Json這個NuGet包,保證了所有依賴的DLL檔案都被引用到了ASP.NET Core專案"AspNetCore3000Message"中:

.NET Core中建立和使用NuGet包的示例程式碼

這裡我們選擇安裝"2.0.0"版本:

.NET Core中建立和使用NuGet包的示例程式碼

之後我們就可以在ASP.NET Core專案中使用.NET Core類庫專案中的StringHelper類了,並且可以看到<summary>註釋是成功顯示的:

.NET Core中建立和使用NuGet包的示例程式碼

參考文獻:

How to include XML documentation file in NuGet package built from a project file?

到此這篇關於.NET Core中建立和使用NuGet包的示例程式碼的文章就介紹到這了,更多相關.NET Core 建立和使用NuGet包內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!