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

NuGet 是什麼

一個能讓開發人員編寫、交換和使用功能性程式碼的系統,是任何現代開發平臺的重要組成部分。 這些功能代碼會以 "套件 "的形式綑綁在一起,這些套件也包括使用這些代碼的專案所需的其他材料,例如編譯代碼(以 DLL 的形式)。

Microsoft 支援的 .NET (包括 .NET Core) 代碼分享方法是 NuGet。 NuGet 可以為 .NET Framework 製作、託管和檢索套件。 NuGet 管理的軟體套件稱為 NuGet 套件。

NuGet 是什麼 NuGet 套件只是一個副檔名為 .nupkg 的壓縮檔。 它包含軟體運作所需的所有 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 式專案 (請參閱 SDK 屬性)。 某些 NuGet CLI 功能可直接在 .NET Core 工具鏈中使用。 .NET CLI 與 NuGet.exe CLI 一樣,不會與 Visual Studio 專案互動。

NuGet.exe CLI

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

NuGet CLI 不與 Visual Studio 專案互動,因為它是一個平台中立的工具。

套件管理員控制台

Package Manager Console 提供 PowerShell 指令,用於在 Visual Studio 專案中安裝和管理套件。

套件管理員 UI

Package Manager UI 提供了一個友善的使用者介面,用於在 Visual Studio 中安裝和管理專案的套件。

管理 NuGet 套件管理員 UI

此工具也提供一個友善的使用者介面,用於在 Visual Studio 中的專案中安裝和管理套件。 此工具僅適用於 Mac 使用者。

MSBuild

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

Package Manager UI 和 Package Manager Console 是管理 NuGet 套件最廣泛使用的工具。 現在我們將探討它們的使用方式。

NuGet 套件管理員使用者介面的使用

在 Visual Studio 中,從頂部功能表列按一下工具,然後選擇 NuGet Package Manager > Manage NuGet package for Solutions。

新視窗將如下所示。

What is NuGet, Figure 2

在"已安裝"標籤中,所有已安裝的 NuGet 套件都會出現在這裡。

按一下瀏覽按鈕,然後在搜尋列中寫入套件名稱。 我們將以 IronBarcode 為例進行搜尋。

What is NuGet, Figure 3

按一下安裝按鈕,程式庫即會安裝完成並可供使用。

IronBarcode NuGet Package Details 是 Iron Software 開發和維護的函式庫,可協助 C# 軟體工程師在 .NET 應用程式中讀寫條碼和 QR 碼。

核心功能包括

  • 從影像或 PDF 讀取單一或多個 BarCode 和 QR 代碼。
  • 針對傾斜、方向、雜訊、低解析度、對比等進行影像修正。
  • 建立 BarCode 並將其套用至影像或 PDF 文件。
  • 將 BarCode 嵌入 HTML 文件。
  • 為 BarCode 設定樣式,並新增註解文字。
  • QR Code Writing 可加入標誌、顏色和進階 QR 對齊方式。

從產品 說明文件頁面瞭解更多關於 IronBarcode 的資訊。

套件管理員控制台的使用

在 Visual Studio 中,點擊頂部功能表列中的工具,然後選擇 NuGet Package Manager => Package Manager 主控台。

Package Manager Console 視窗會如下所示。

What is NuGet, Figure 4

讓我們使用套件管理員控制台安裝套件。

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

Install-Package IronPdf

Explore IronOCR for .NET NuGet Package 是一個 C# 軟體函式庫,可讓 .NET 軟體開發人員偵測並讀取影像和 PDF 文件中的文字。 它使用目前已知最先進的 Tesseract 引擎。 IronOCR在處理真實世界中充滿瑕疵(如數位雜訊、低品質解析度等)的影像時,優於所有其他 OCR 函式庫。 它支援多種程式語言。

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

一些有用的 NuGet 套件

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

實體框架

Discover Entity Framework NuGet Package 是最常用且功能最強大的 NuGet Package,可用於在 .NET 應用程式中使用資料庫。

它是微軟支援的開放原始碼 ORM 架構,可讓開發人員使用特定領域的物件來處理資料,而不是使用儲存資料的底層資料庫表和列。 在處理資料時,開發人員可以在較高的抽象層級上工作。 這可讓他們以比傳統應用程式更少的程式碼,建立並維護以資料為導向的應用程式。

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

Getting-Started Guide for Entity Framework 提供更多關於 Entity Framework 功能的資訊。

IronPDF

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

IronPDF 的主要功能包括:

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

請在 IronPDF 的 產品文件頁面閱讀更多關於 IronPDF 的資訊。

IronXL

IronXL NuGet Package 可幫助 C# 軟體工程師在 .NET 應用程式中讀取、建立和編輯試算表檔案。 IronXL在不使用 Office Excel Interop 的情況下也能運作良好,並且不需要額外的相依性,也不需要安裝 Microsoft Office。

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

Iron Software 在一個 .NET Suite 中提供所有五個函式庫 (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技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我