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

NuGet 是什麼

允許開發人員撰寫、交換和使用功能性代碼的系統是任何現代開發平台的重要組成部分。 這些功能性代碼被打包在"套件"中,其中還包括專案使用時所需的其他資料,如已編譯代碼(以 DLL 的形式)。

Microsoft 支持的 .NET(包括 .NET Core)代碼共享方法是 NuGet。 NuGet 能生成、託管和檢索 .NET 框架的套件。 NuGet 管理的軟體套件稱為 NuGet 套件。

什麼是 NuGet? NuGet 套件只是一個附有 .nupkg 擴展名的 zip 文件。 它包含使軟體運行所需的所有 DLL。 它還包含一個描述性清單,列出套件的版本號等內容。 開發人員只需要安裝 NuGet 套件,就可以使用該套件提供的方法。

class="hsg-featured-snippet">

什麼是 Nuget 及如何供 .NET 開發人員使用

  1. 利用 .NET CLI 自動化流水線工作流程
  2. 使用 NuGet.exe CLI 訪問特定命令以供套件創建者使用
  3. 使用 MSBuild 功能管理您的專案
  4. 利用 NuGet 套件管理器 UI 提供與 Visual Studio 的用戶友好界面
  5. 根據專案需求安裝相關 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 即對整個專案代碼可用。

class="content-img-align-center"> 什麼是 NuGet,圖 1

class="content__image-caption">

NuGet 工具

有六種工具用於管理 NuGet 套件。

.NET CLI

這是一個用於 .NET Core 和 .NET Standard 庫,以及目標為 .NET 框架的 SDK 樣式項目的命令行界面(CLI)(參見 SDK 屬性)。 某些 NuGet CLI 功能直接在 .NET Core 工具鏈中可用。 .NET CLI 就像 nuget.exe CLI 一樣,不與 Visual Studio 項目交互。

NuGet.exe CLI

這是一個針對目標 .NET Standard 庫的 .NET 框架庫和非 SDK 樣式項目的 CLI。 它提供 .NET CLI的全部功能,其中一些命令僅適用於套件創建者,其他命令僅適用於消費者。 例如,套件創建者使用 NuGet pack 命令從各個彙編和相關文件中生成套件。 套件用戶使用 NuGet install 將套件包括在專案文件夾中。 套件開發者和套件用戶皆使用 NuGet config 設置 NuGet 配置變量。

因為它是一個平台不可知的工具,NuGet CLI 不與 Visual Studio 專案交互。

套件管理控制台

套件管理控制台提供 PowerShell 命令以在 Visual Studio 專案中安裝和管理套件。

套件管理器 UI

套件管理器 UI 提供用戶友好的界面以安裝和管理 Visual Studio 專案中的套件。

管理 NuGet 套件管理器 UI

這個工具同樣提供用戶友好的界面以在 Visual Studio 專案中安裝和管理套件。 這個工具僅對 Mac 使用者開放。

MSBuild

MSBuild 允許用戶直接從 MSBuild 工具鏈創建和恢復專案中使用的套件。

套件管理器 UI 和套件管理控制台是管理 NuGet 套件最廣泛使用的工具。 我們將來探索它們的用途。

使用 NuGet 套件管理器 UI

在 Visual Studio 中,從頂部選單欄點擊工具並選擇 NuGet 套件管理器 > 管理解決方案的 NuGet 套件。

一個如下面所示的新窗口將出現。

class="content-img-align-center"> 什麼是 NuGet,圖 2

class="content__image-caption">

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

點擊瀏覽按鈕並在搜索欄中輸入套件名稱。 我們將搜索 IronBarcode 作為範例。

class="content-img-align-center"> 什麼是 NuGet,圖 3

class="content__image-caption">

點擊安裝按鈕,庫將被安裝並準備使用。

IronBarcode NuGet 套件詳細資料 是由 Iron Software 開發和維護的一個庫,幫助 C# 軟體工程師在 .NET 應用程序中讀寫條形碼和 QR 碼。

核心功能包括:

  • 從圖像或 PDF 中讀取單個或多個條形碼和 QR 碼。
  • 針對傾斜、方向、噪聲、低分辨率、對比等進行圖像校正。
  • 創建條形碼並將其應用於圖像或 PDF 文檔。
  • 將條形碼嵌入到 HTML 文檔中。
  • 風格化條形碼並添加註釋文本。
  • QR 碼寫入允許添加徽標、顏色和高級 QR 對齊。

從產品的文檔頁面了解更多 IronBarcode。

使用套件管理控制台

在 Visual Studio 中,從頂部選單欄點擊工具並選擇 NuGet 套件管理器 => 套件管理控制台。

套件管理控制台窗口將如下面所示出現。

class="content-img-align-center"> 什麼是 NuGet,圖 4

class="content__image-caption">

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

Install-Package 'package-Name' 命令用於安裝套件。 例如,要安裝 IronOCR 套件:

Install-Package IronPdf

探索 IronOCR NuGet 套件 是一個 C# 軟體庫,允許 .NET 軟體開發人員從圖像和 PDF 文檔中檢測和讀取文本。 它使用了全球最先進的 Tesseract 引擎。 IronOCR shines above all 其他 OCR 庫。 它支持多種編程語言。

Read more technical documentation about IronOCR from the product website.

一些有用的 NuGet 套件

本節將描述一些適用於數據庫和文件處理的有用 NuGet 套件。

Entity Framework

發現 Entity Framework NuGet 套件 是一個在 .NET 應用程序中使用數據庫作業最常用且最強大的 NuGet 套件。

它是由 Microsoft 支持的開源 ORM 框架,允許開發人員使用域特定對象而非使用數據存儲的底層數據庫表和列進行數據操作。 當操作資料時,開發人員可以以更高的抽象層級進行工作。 這使得他們能夠比傳統程式更少代碼地創建和維護面向數據的應用程序。

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

Entity Framework 入門指南 提供有關 Entity Framework 能力的更多信息。

IronPDF

IronPDF NuGet Package solves the difficult problem of adding PDF processing capabilities to apps. IronPDF 自動化將格式化文檔轉換為 PDF,並且還允許開發人員創建、編輯和導出 PDF 文檔。

IronPDF 的主要功能包括:

  • 使用 .NET 將 Web 表單、本地 HTML 頁面和其他 Web 頁面轉換為 PDF。
  • 允許用戶下載文檔、通過電子郵件發送文檔或將其存儲在雲上。
  • 生成發票、報價、報告、合同和其他文檔。
  • 兼容於 ASP .NET、ASP .NET Core、Web 表單、MVC、Web API 上的 .NET 框架和 .NET Core。

在它的產品文檔頁面上閱讀有關 IronPDF 的更多信息。

IronXL

IronXL NuGet 套件 幫助 C# 軟體工程師在 .NET 應用程序中讀取、創建和編輯電子表格文件。 IronXL 運行良好,無需使用 Office Excel Interop,並且不需要額外的依賴或安裝 Microsoft Office。

您可以從全面的產品文檔中了解更多有關 IronXL 的信息。

Iron Software 將所有五個庫(IronPDF、IronXL、IronBarcode、IronWebScraper 和 IronOCR)整合在一個.NET 套件中。 您在購買完整套件時可以得到五個庫的組合,價格只是兩個庫的價格。所有購買都包含終身產品支持。

摘要

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 應用程式。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。