封裝 Razor 類別庫
您經常需要封裝程式庫供其他開發人員重複使用。 NuGet 封裝簡化了這項工作,讓任何開發人員無論身在何處,都能輕鬆取得,並正確為其應用程式設定所有的 .NET 參考。
在上一個單元中,您建置了強制回應對話方塊元件,應用在自己的應用程式中。 您現在想要在其他應用程式中重複使用該元件。
在本單元中,您將學習如何將 Razor 類別庫設定為NuGet套件。 此外也會學習如何使用套件存放庫服務 (例如 NuGet.org 或 GitHub 存放庫) 封裝散發用的程式庫。
設定 NuGet 要封裝的 Razor 類別庫
.NET 生態系統可以讓您輕鬆定義其他開發人員識別和使用您元件所需的屬性。 您可以在 Razor 類別庫的專案檔案 (*.csproj) 中定義所有這些屬性,讓這些屬性可與程式庫一起移動,並在程式庫更新時適當地隨之更新。
您可以在 [Visual Studio Project 屬性 - 封裝] 對話方塊中設定識別您套件的欄位,也可以自行直接在*.csproj 檔案中建立這些項目。
以下是建立套件所需的四個欄位:
欄位 | 描述 | 預設值 |
---|---|---|
PackageId | 在整個 NuGet 存放庫中專用的套件識別碼。 | 和式庫的 AssemblyName |
版本 | 特定的版本號碼,格式為 Major.Minor.Patch[-Suffix],其中 -Suffix 可讓您選擇是否要定義發行前版本。 | 1.0.0 |
Authors | 套件的作者。 | AssemblyName |
Company | 負責建立及發佈套件的公司名稱。 | AssemblyName |
這些欄位中部分有預設值,而且在發佈套件時,若使用 MyFirstLibrary 的公司名稱,可能會有點奇怪。 極力建議您明確定義這些值。
在上一個單元中,您已了解 Razor 類別庫的靜態內容可從 _content/[PACKAGE_ID]/
取得,現在您會看到何處設定了 PackageId
值。
設有這些值的範例專案檔案類似下列所示:
<PropertyGroup>
<PackageId>Learn.MyFirstLibrary</PackageId>
<Version>0.1.0-alpha1</Version>
<Authors>Susan Developer, Terry Programmer</Authors>
<Company>AdventureWorks</Company>
</PropertyGroup>
建置專案時,也可以選取 Visual Studio [專案屬性] 對話方塊中的 [在建置時產生 NuGet 套件] 選項,或在其他封裝欄位旁,新增 GeneratePackageOnBuild
項目,設定其產生 NuGet 套件,如下所示:
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
您可以設定許多選擇性專案屬性,包括:
Description
,適合顯示在 NuGet 存放庫中- 著作權聲明
- 授權資訊
- 圖示
- 專案 URL
如需完整的屬性清單,請參閱 MSBuild 套件目標相關的 Microsoft 文件。
封裝程式庫
當將程式庫設定寫入 *.csproj 檔案之後,就能在 Visual Studio 中產生 NuGet 套件,方法是在專案上按一下滑鼠右鍵,然後選取 [封裝]命令,或在專案資料夾中執行下列命令:
dotnet pack
dotnet pack
命令會產生包含 PackageID 和版本號碼的套件,並將其置於標準專案組建輸出資料夾中。