在較大型方案中,將參考或是擴充方法拉至單獨一個專案,不僅方便維護,若有其他新專案,也可以較快速的搬移來共用。
此code base會較著墨於共用方法,因此從建類別庫來開啟這個系列,酷!
以下就流程簡單介紹:
首先,先在方案內新增類別庫專案
選擇加入類別庫專案
架構選定.NET Standard 2.0
先來寫個簡單的打招呼程式
using System;
using System.Runtime.CompilerServices;
namespace LibraryAddTest
{
public static class Hello
{
/// <summary>
/// 跟someone打招呼
/// </summary>
/// <returns></returns>
public static string SayHiToSomeOne()
{
return "Hi, Someone!";
}
/// <summary>
/// 跟指定人打招呼
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public static string SayHiToName(this string name)
{
return $"Hi, {name}!";
}
}
}
設定專案的相依性
建置類別庫專案後,即可在其餘專案做引用
using LibraryAddTest;
var name = "Engineer Mike";
var sayHiToSomeOne = name.SayHiToName();
Console.WriteLine(name);
結果
到這邊其實主要的類別庫已經完成,但為了懶出極限在其他方案更快速的套用,我們可以將類別庫打包成nuget,並發佈到NuGet.org,如下:
於類別庫專案右鍵點擊套件做打包,預設路徑為專案下方的bin資料夾
下載用於發布的工具 - NuGet Package Explorer ,選擇本地的nuget package file
選取後畫面,左側可以看到此nuget的詳情
點擊左上 Edit > Edit Metadata 可以調整此nuget的詳細資訊,包含作者資訊,專案的repo位置,icon圖檔等
點擊左上 File > Publish 來發佈
輸入publish key來推送,若無私有nuget server,可以使用共有的 nuget server 來生成 API Keys
推送成功後,即可在 nuget.org 找到已推送的套件
結語
擴充方法跟套件打包,目的都是為了減少開發日常中重複性的工作,也因此在設計套件上,必須考慮泛用性,接下來的幾篇,我會從我個人最耗時或最常用的方法優先撰寫,酷拉!