跳過到頁腳內容
.NET幫助
什麼是 NuGet(對於開發人員來說它如何運作的教程)

NuGet 是什麼

允許開發者編寫、交換和使用功能性程式碼的系統是任何現代開發平台的關鍵組成部分。 這些功能代碼被打包成"軟體包",其中還包含使用這些程式碼的專案所需的其他材料,例如編譯後的程式碼(以 DLL 的形式)。

微軟支援的.NET (包括.NET Core)程式碼共享方法是NuGet。 NuGet支援.NET Framework 的程式包的生產、託管和檢索。 NuGet管理的軟體包稱為NuGet套件。

NuGet是什麼? NuGet套件就是一個副檔名為 .nupkg 的 zip 檔。 它包含了軟體運作所需的所有 DLL 檔案。 它還包含一個描述性清單,其中列出了軟體包的版本號等資訊。 開發人員只需安裝NuGet包,即可使用該套件提供的方法。

NuGet功能

  • NuGet adds private hosting support to the central nuget.org repository.
  • NuGet為開發人員提供了創建、發布和安裝程式包所需的工具。
  • NuGet會追蹤專案中使用的套件,並允許您從該清單中還原和更新這些套件。
  • NuGet會追蹤與套件的結構相關的所有規範,例如在地化以及它們的引用方式。
  • NuGet提供了許多 API,用於以程式設計方式與其所有服務進行交互,並為發布 Visual Studio 擴充功能的開發人員提供支援。
  • NuGet包含一個套件快取和一個全域套件資料夾,使安裝和重新安裝更加容易。 如果本機電腦上已經存在某個軟體包,快取就不會從中央儲存庫下載該軟體包,而是直接從快取提供該軟體包。

NuGet套件的工作原理

NuGet, as a public host, maintains a central repository of over 100,000 unique packages. 每天,數百萬.NET/ .NET Core開發人員都會使用這些套件。 NuGet還允許您將套件私有地託管在雲端(例如 Azure DevOps)、私有網絡,甚至本機檔案系統中。 因此,這些軟體包僅供有權存取主機的開發人員使用,從而允許您將軟體包提供給特定的使用者群體。

無論其性質如何,宿主程式都充當軟體包創建者和軟體包消費者之間的橋樑。 創建者開發實用的NuGet套件並將其分發到主機。然後,用戶在可存取的主機上搜尋實用且相容的包,下載這些包並將其包含在自己的專案中。 一旦安裝到專案中,軟體包的 API 就可以被專案程式碼的其餘部分存取。

What is NuGet, Figure 1

NuGet工具

有六種工具可用於管理NuGet程式包。

.NET CLI

它是.NET Core和.NET Standard程式庫的命令列介面 (CLI),也是面向.NET Framework 的SDK 風格專案的命令列介面 (CLI)(請參閱 SDK 屬性)。 某些NuGet CLI 功能可以直接在.NET Core工具鏈中使用。 與NuGet .exe CLI 一樣, .NET CLI 不會與 Visual Studio 專案互動。

NuGet.exe 命令列介面

這是一個針對.NET Standard函式庫的.NET Framework函式庫和非 SDK 風格專案的 CLI。 它提供了.NET CLI 的所有功能,其中一些命令僅適用於套件創建者,而其他命令僅適用於使用者。 例如,套件建立者使用NuGet pack 指令從各種組件和相關檔案產生套件。 套件使用者使用 NuGet install 將套件包含在專案資料夾中。 套件開發者和套件使用者都使用 NuGet config 來設定NuGet配置變數。

NuGet CLI 不會與 Visual Studio 專案交互,因為它是平台無關的工具。

軟體包管理器控制台

套件管理器控制台提供 PowerShell 命令,用於在 Visual Studio 專案中安裝和管理程式包。

軟體包管理器使用者介面

套件管理器 UI 為 Visual Studio 中的專案提供了一個使用者友好的介面,用於安裝和管理程式包。

管理NuGet套件管理器 UI

該工具還提供了一個用戶友好的介面,用於在 Visual Studio 專案中安裝和管理程式包。 此工具僅適用於Mac用戶。

MSBuild

MSBuild 允許使用者直接從 MSBuild 工具鏈建立和還原專案中使用的套件。

套件管理器 UI 和套件管理器控制台是管理NuGet套件最常用的工具。 接下來我們將探討它們是如何被使用的。

使用NuGet套件管理器 UI

在 Visual Studio 中,點擊頂部功能表列中的"工具",然後選擇"NuGet套件管理員">"管理解決方案的NuGet套件"。

將出現如下所示的新視窗。

What is NuGet, Figure 2

在"已安裝"標籤中,所有已安裝的NuGet套件將顯示在此。

點選"瀏覽"按鈕,然後在搜尋欄中輸入包裹名稱。 我們將以IronBarcode為例進行研究。

What is NuGet, Figure 3

點擊"安裝"按鈕,庫將被安裝並準備就緒。

IronBarcode NuGet套件詳情是由Iron Software開發和維護的程式庫,可協助 C# 軟體工程師在.NET應用程式中讀取和寫入條碼和二維碼。

核心功能包括:

  • 從影像或 PDF 讀取單一或多個條碼和二維碼。
  • 影像校正,包括傾斜、方向、雜訊、低解析度、對比度等問題。
  • 建立條碼並將其套用至影像或 PDF 文件。
  • 將條碼嵌入 HTML 文件中。
  • 設定條碼樣式並新增註釋文字。
  • 二維碼編寫功能允許添加徽標、顏色和高級二維碼對齊方式。

請造訪產品文件頁面,以了解更多關於IronBarcode 的資訊。

使用軟體套件管理器控制台

在 Visual Studio 中,按一下頂部功能表列中的"工具",然後選擇"NuGet套件管理員"=>"套件管理器控制台"。

程式包管理器控制台視窗將如下圖所示。

What is NuGet, Figure 4

讓我們使用軟體包管理器控制台安裝一個軟體包。

使用 Install-Package 'package-Name' 指令安裝軟體包。 例如,要安裝IronOCR軟體包:

Install-Package IronPdf

探索IronOCR NuGet套件是一個 C# 軟體庫,它允許.NET軟體開發人員偵測和讀取影像和 PDF 文件中的文字。 它採用了目前已知最先進的 Tesseract 引擎。 在處理充滿缺陷的真實世界影像(例如,數位雜訊、低品質解析度等)時, IronOCR在所有OCR 庫中脫穎而出。 它支援多種程式語言。

請造訪產品網站閱讀更多關於IronOCR 的技術文件

一些有用的NuGet包

本節將介紹一些可用於處理資料庫和檔案的實用NuGet程式包。

Entity Framework

Discover Entity Framework NuGet套件是用於在.NET應用程式中處理資料庫的最常用、最強大的NuGet套件。

這是一個由微軟支援的開源 ORM 框架,它允許開發人員使用特定領域的物件來處理數據,而不是使用儲存資料的底層資料庫表和列。 在處理資料時,開發人員可以進行更高層次的抽象工作。 這使得他們能夠用比傳統應用程式更少的程式碼創建和維護面向資料的應用程式。

有單獨的NuGet套件可用於管理 SQL Server、Oracle、MySQL 和 PostgreSQL 資料庫伺服器。

《Entity Framework入門指南》提供了更多有關Entity Framework功能的資訊。

IronPDF

IronPDF IronPDFNuGet解決了為應用程式添加 PDF 處理功能的難題。 IronPDF 可以自動將格式化文件轉換為 PDF,並允許開發人員建立、編輯和匯出 PDF 文件。

IronPDF的主要功能包括:

  • 使用.NET將 Web 表單、本機 HTML 頁面和其他網頁轉換為 PDF。
  • 允許使用者下載文件、透過電子郵件傳送文件或將文件儲存在雲端。
  • 製作發票、報價單、報告、合約及其他文件。
  • 使用.NET、 .NET Core、Web Forms、MVC、 .NET Framework和.NET Core上的 Web API 進行開發。

請造訪IronPDF產品文件頁面,以了解更多資訊。

IronXL

IronXL NuGet套件幫助 C# 軟體工程師在.NET應用程式中讀取、建立和編輯電子表格檔案。 IronXL無需使用 Office Excel Interop 即可正常運作,也不需要額外的依賴項或安裝 Microsoft Office。

您可以從全面的產品文件中了解更多關於IronXL 的資訊。

Iron Software在一個.NET套件中提供了所有五個函式庫( IronPDF、 IronXL、 IronBarcode、IronWebScraper 和IronOCR )。 購買完整套裝,即可享有五個庫僅需兩個庫的價格。所有購買均包含終身產品支援。

概括

NuGet是.NET應用程式的套件管理器。 NuGet客戶端工具提供了建立、共用和檢索套件的功能。 NuGet Gallery 是所有軟體包作者和使用者使用的中央軟體包儲存庫。

  • NuGet provides the central nuget.org repository with support for private hosting.
  • NuGet為開發人員提供了創建、發布和安裝程式包所需的工具。
  • NuGet維護著對專案中使用的套件的引用,並且能夠從該清單中還原和更新這些套件。

常見問題解答

怎樣在 C# 中將 HTML 轉換為 PDF?

您可以使用 IronPDF 的 RenderHtmlAsPdf 方法將 HTML 字串轉換為 PDF。您也可以使用 RenderHtmlFileAsPdf 方法將 HTML 文件轉換為 PDF。

什麼是 NuGet,為什麼它對 .NET 開發人員很重要?

NuGet 是一個包管理系統,允許 .NET 開發人員高效地創建、共享和使用打包代碼。它簡化了第三方庫和依賴項的管理,確保使用正確的版本,並便於更新和恢復包。

如何使用 .NET CLI 安裝 NuGet 包?

要使用 .NET CLI 安裝 NuGet 包,可以使用命令 dotnet add package [PackageName]。此命令將指定的包添加到您的項目中,簡化了包管理過程。

在 Visual Studio 中管理 NuGet 包的必要工具有哪些?

在 Visual Studio 中管理 NuGet 包的必要工具包括包管理器 UI、包管理器控制台和 .NET CLI。這些工具允許在項目中高效地瀏覽、安裝和更新包。

使用私有託管 NuGet 包的好處有哪些?

私有託管 NuGet 包允許開發人員在特定組或組織中安全地共享包。這可確保只有授權用戶才能訪問某些包,增強了代碼分發的安全性和控制。

NuGet 包管理器控制台如何促進包管理?

Visual Studio 中的 NuGet 包管理器控制台允許開發人員在其開發環境中直接執行安裝、更新和管理包的命令。這提供了一個強大的界面來高效地處理包的依賴性和版本。

在 NuGet 包中清單扮演什麼角色?

NuGet 包中的清單包含中繼數據,例如包的版本號和其他重要信息。這些中繼數據對於識別、管理和解決項目中的依賴性至關重要。

NuGet 可以用於非 .NET 專案嗎?

儘管 NuGet 主要為 .NET 專案設計,但其基礎架構可以支持其他多種專案的包管理。但是,其全部潛力和功能在 .NET 生態系統中最能得到發揮。

NuGet 中的快取機制如何簡化包管理?

NuGet 的快取機制允許通過本地存儲包數據來簡化包的安裝和重安裝。這減少了反復從中央倉庫下載包的需求,從而加快了開發過程。

一些流行的 NuGet 包的範例有哪些?

流行的 NuGet 包包括用於資料庫交互的 Entity Framework、用於 PDF 處理的 IronPDF 和用於操作試算表的 IronXL。這些包為開發人員提供了強大的工具來增強他們的 .NET 應用程式。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me