使用 NuGet 包管理器在 Visual Studio 中安裝和管理包


https://docs.microsoft.com/zh-cn/nuget/consume-packages/install-use-packages-visual-studio

 

通過 Windows 版 Visual Studio 中的 NuGet 包管理器 UI,可輕松安裝、卸載和更新項目和解決方案中的 NuGet 包。 若要了解 Visual Studio for Mac 的使用體驗,請參閱在項目中包括 NuGet 包。 Visual Studio Code 中不包含包管理器 UI。

 備注

如果 Visual Studio 2015 中缺少 NuGet 包管理器,請選中“工具”>“擴展和更新...” 並搜索“NuGet 包管理器” 擴展。 如果無法在 Visual Studio 中使用擴展安裝程序,請直接從 https://dist.nuget.org/index.html 下載擴展。

從 Visual Studio 2017 開始,NuGet 和 NuGet 包管理器會與任何 .NET 相關的工作負載一起自動安裝。 通過在 Visual Studio 安裝程序中選擇“單個組件”>“代碼工具”>“NuGet 包管理器” 選項,可以單獨安裝它。

查找和安裝包

  1. 在“解決方案資源管理器”中,右鍵單擊“引用”或某個項目,然后選擇“管理 NuGet 包...” 。

    “管理 NuGet 包”菜單選項

  2. “瀏覽” 選項卡按當前所選來源的受歡迎程度顯示包(請參閱包源)。 使用左上角的搜索框搜索特定包。 從列表中選擇一個包以顯示其信息,此操作還會啟用“安裝” 按鈕以及版本選擇下拉列表。

    “管理 NuGet 包”對話框“瀏覽”選項卡

  3. 從下拉列表中選擇所需的版本,然后選擇“安裝” 。 Visual Studio 隨即將包及其依賴項安裝到項目中。 系統可能會要求你接受許可條款。 安裝完成后,添加的包將顯示在“已安裝” 選項卡上。包同時還列在解決方案資源管理器的“引用” 節點中,表明可以使用 using 語句在項目中引用它們。

    解決方案資源管理器中的“引用”

 提示

若要在搜索中包含預發布版本,並在版本下拉列表中提供預發布版本,請選中“包含預發布版本” 選項。

卸載包

  1. 在“解決方案資源管理器” 中,右鍵單擊“引用” 或所需項目,然后選擇“管理 NuGet 包...” 。

  2. 選擇“已安裝” 選項卡。

  3. 選擇要卸載的包(如有必要,使用搜索來篩選列表)並選擇“卸載” 。

    卸載包

  4. 請注意,在卸載包時,“包含預發布版本” 和“包源” 控件無效。

更新包

  1. 在“解決方案資源管理器” 中,右鍵單擊“引用” 或所需項目,然后選擇“管理 NuGet 包...” 。(在網站項目中,右鍵單擊“Bin” 文件夾。)

  2. 選擇“更新” 選項卡,查看所選包源中包含可用更新的包。 選中“包含預發布版本” ,以便在更新列表中包含預發布版本的包。

  3. 選擇要更新的包,從右側的下拉列表中選擇所需的版本,然后選擇“更新” 。

    更新包

  4. 對於某些包,“更新” 按鈕處於禁用狀態,並顯示一條消息,指示它是“由 SDK 隱式引用”(或“AutoReferenced”)。 此消息表明該包是較大框架或 SDK 的一部分,不能單獨更新。 (此類包在內部標有 <IsImplicitlyDefined>True</IsImplicitlyDefined>。)例如,Microsoft.NETCore.App 是 .NET Core SDK 的一部分,並且包版本與應用程序使用的運行時框架的版本不同。 需要更新 .NET Core 安裝以獲取新版本的 ASP.NET Core 和 .NET Core 運行時。 請參閱本文檔,詳細了解 .NET Core 元包和版本控制。 這適用於以下常用包:

    • Microsoft.AspNetCore.All
    • Microsoft.AspNetCore.App
    • Microsoft.NETCore.App
    • NETStandard.Library

    標記為“隱式引用”或“AutoReferenced”的示例包

  5. 若要將多個包更新到其最新版本,請在列表中選中它們,然后選擇列表上方的“更新” 按鈕。

  6. 還可以從“已安裝” 選項卡更新單個包。在這種情況下,包的詳細信息包括版本選擇器(受“包含預發布版本” 選項的約束)和“更新” 按鈕。

管理解決方案的包

管理解決方案的包是同時處理多個項目的便捷方式。

  1. 選擇“工具”>“NuGet 包管理器”>“管理解決方案的 NuGet 包...”菜單命令,或右鍵單擊解決方案,然后選擇“管理 NuGet 包...” :

    管理解決方案的 NuGet 包

  2. 管理解決方案的包時,UI 讓你可以選擇受操作影響的項目:

    管理解決方案的包時的項目選擇器

“合並”選項卡

開發人員通常認為,在同一解決方案的不同項目中使用相同 NuGet 包的不同版本的做法不好。 當你選擇管理解決方案的包時,包管理器 UI 提供了一個“合並” 選項卡,讓你可以輕松查看解決方案中不同項目使用的具有不同版本號的包:

包管理器 UI“合並”選項卡

在本例中,ClassLibrary1 項目使用的是 EntityFramework 6.2.0,而 ConsoleApp1 使用的是 EntityFramework 6.1.0。 若要合並包版本,請執行以下操作:

  • 在項目列表中選擇要更新的項目。
  • 選擇要在“版本” 控件中的所有項目中使用的版本,例如 EntityFramework 6.2.0。
  • 選擇“安裝”按鈕 。

包管理器將選定的包版本安裝到所有選定的項目中,之后包不再顯示在“合並”選項卡上 。

包源

若要更改 Visual Studio 從中獲取包的源,請從源選擇器中選擇一個源:

包管理器 UI 中的包源選擇器

管理包源:

  1. 在下面的包管理器 UI 中選擇“設置” 圖標,或使用“工具”>“選項” 命令並滾動到“NuGet 包管理器” :

    包管理器 UI“設置”圖標

  2. 選擇“包源”節點 :

    “包源”選項

  3. 要添加源,請選擇“+” ,編輯名稱,在“源” 控件中輸入 URL 或路徑,然后選擇“更新” 。 選擇器下拉列表中現在顯示源。

  4. 若要更改包源,請選中它,在“名稱” 和“源” 框中進行編輯,然后選擇“更新” 。

  5. 若要禁用包源,請清除列表中名稱左側的框。

  6. 若要刪除包源,請選中它,然后選擇“X” 按鈕。

  7. 使用向上和向下箭頭按鈕不會更改包源的優先級順序。 Visual Studio 會忽略包源的順序,使用來自任何首先響應請求的源的包。有關詳細信息,請參閱包源

 提示

如果在刪除某個包源后,該包源重新出現,則它可能會列在計算機級或用戶級 NuGet.Config 文件中。 有關這些文件的位置,請參閱常見 NuGet 配置,然后通過手動編輯文件或使用 nuget 源命令刪除源。

包管理器“選項”控件

選擇包后,包管理器 UI 會在版本選擇器下方顯示一個可擴展的“選項”小控件(此處顯示為折疊和展開) 。 請注意,對於某些項目類型,僅提供“顯示預覽窗口”選項 。

包管理器選項

以下各節介紹了這些選項。

顯示預覽窗口

選中此選項后,模式窗口將顯示安裝包之前所選包的依賴項:

示例“預覽”對話框

安裝與更新選項

(並非適用於所有項目類型。)

“依賴項行為” 用於配置 NuGet 如何決定要安裝哪些版本的依賴包:

  • “忽略依賴項” 會跳過安裝任何依賴項,這通常會破壞正在安裝的軟件包。
  • 如果選擇“最低” [默認選項],則安裝具有可滿足主要選定包要求的最小版本號的依賴項。
  • 如果選擇“最高版本的修補程序” ,則安裝的版本的主要版本號和次要版本號相同,但修補程序版本號最高。 例如,如果指定版本 1.2.2,則會安裝以 1.2 開頭的最高版本
  • 如果選擇“最高次要版本” ,則安裝的版本的主要版本號相同,但次要版本號和修補程序版本號最高。 如果指定版本 1.2.2,則會安裝以 1 開頭的最高版本
  • 選擇“最高” 可安裝包的最高可用版本。

“文件沖突操作” 指定 NuGet 應如何處理項目或本地計算機中已存在的包:

  • “提示” 指示 NuGet 詢問是保留還是覆蓋現有包。
  • “全部忽略” 指示 NuGet 跳過覆蓋任何現有包。
  • “全部覆蓋” 指示 NuGet 覆蓋任何現有包。

卸載選項

(並非適用於所有項目類型。)

“刪除依賴項” :如果選中,則刪除任何依賴包(如果它們未在項目中的其他位置引用)。

“在存在依賴項時仍強制卸載” :選中后,即使在項目中仍然引用了該包,也會卸載它。 此選項通常與“刪除依賴項” 一起選中,用於刪除包及其安裝的任何依賴項。 不過,使用此選項可能會導致項目中的引用中斷。 在這種情況下,可能需要重新安裝其他包


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM