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 包管理器” 選項,可以單獨安裝它。
查找和安裝包
-
在“解決方案資源管理器”中,右鍵單擊“引用”或某個項目,然后選擇“管理 NuGet 包...” 。
-
“瀏覽” 選項卡按當前所選來源的受歡迎程度顯示包(請參閱包源)。 使用左上角的搜索框搜索特定包。 從列表中選擇一個包以顯示其信息,此操作還會啟用“安裝” 按鈕以及版本選擇下拉列表。
-
從下拉列表中選擇所需的版本,然后選擇“安裝” 。 Visual Studio 隨即將包及其依賴項安裝到項目中。 系統可能會要求你接受許可條款。 安裝完成后,添加的包將顯示在“已安裝” 選項卡上。包同時還列在解決方案資源管理器的“引用” 節點中,表明可以使用
using
語句在項目中引用它們。
提示
若要在搜索中包含預發布版本,並在版本下拉列表中提供預發布版本,請選中“包含預發布版本” 選項。
卸載包
-
在“解決方案資源管理器” 中,右鍵單擊“引用” 或所需項目,然后選擇“管理 NuGet 包...” 。
-
選擇“已安裝” 選項卡。
-
選擇要卸載的包(如有必要,使用搜索來篩選列表)並選擇“卸載” 。
-
請注意,在卸載包時,“包含預發布版本” 和“包源” 控件無效。
更新包
-
在“解決方案資源管理器” 中,右鍵單擊“引用” 或所需項目,然后選擇“管理 NuGet 包...” 。(在網站項目中,右鍵單擊“Bin” 文件夾。)
-
選擇“更新” 選項卡,查看所選包源中包含可用更新的包。 選中“包含預發布版本” ,以便在更新列表中包含預發布版本的包。
-
選擇要更新的包,從右側的下拉列表中選擇所需的版本,然后選擇“更新” 。
-
對於某些包,“更新” 按鈕處於禁用狀態,並顯示一條消息,指示它是“由 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
-
若要將多個包更新到其最新版本,請在列表中選中它們,然后選擇列表上方的“更新” 按鈕。
-
還可以從“已安裝” 選項卡更新單個包。在這種情況下,包的詳細信息包括版本選擇器(受“包含預發布版本” 選項的約束)和“更新” 按鈕。
管理解決方案的包
管理解決方案的包是同時處理多個項目的便捷方式。
-
選擇“工具”>“NuGet 包管理器”>“管理解決方案的 NuGet 包...”菜單命令,或右鍵單擊解決方案,然后選擇“管理 NuGet 包...” :
-
管理解決方案的包時,UI 讓你可以選擇受操作影響的項目:
“合並”選項卡
開發人員通常認為,在同一解決方案的不同項目中使用相同 NuGet 包的不同版本的做法不好。 當你選擇管理解決方案的包時,包管理器 UI 提供了一個“合並” 選項卡,讓你可以輕松查看解決方案中不同項目使用的具有不同版本號的包:
在本例中,ClassLibrary1 項目使用的是 EntityFramework 6.2.0,而 ConsoleApp1 使用的是 EntityFramework 6.1.0。 若要合並包版本,請執行以下操作:
- 在項目列表中選擇要更新的項目。
- 選擇要在“版本” 控件中的所有項目中使用的版本,例如 EntityFramework 6.2.0。
- 選擇“安裝”按鈕 。
包管理器將選定的包版本安裝到所有選定的項目中,之后包不再顯示在“合並”選項卡上 。
包源
若要更改 Visual Studio 從中獲取包的源,請從源選擇器中選擇一個源:
管理包源:
-
在下面的包管理器 UI 中選擇“設置” 圖標,或使用“工具”>“選項” 命令並滾動到“NuGet 包管理器” :
-
選擇“包源”節點 :
-
要添加源,請選擇“+” ,編輯名稱,在“源” 控件中輸入 URL 或路徑,然后選擇“更新” 。 選擇器下拉列表中現在顯示源。
-
若要更改包源,請選中它,在“名稱” 和“源” 框中進行編輯,然后選擇“更新” 。
-
若要禁用包源,請清除列表中名稱左側的框。
-
若要刪除包源,請選中它,然后選擇“X” 按鈕。
-
使用向上和向下箭頭按鈕不會更改包源的優先級順序。 Visual Studio 會忽略包源的順序,使用來自任何首先響應請求的源的包。有關詳細信息,請參閱包源。
提示
如果在刪除某個包源后,該包源重新出現,則它可能會列在計算機級或用戶級 NuGet.Config
文件中。 有關這些文件的位置,請參閱常見 NuGet 配置,然后通過手動編輯文件或使用 nuget 源命令刪除源。
包管理器“選項”控件
選擇包后,包管理器 UI 會在版本選擇器下方顯示一個可擴展的“選項”小控件(此處顯示為折疊和展開) 。 請注意,對於某些項目類型,僅提供“顯示預覽窗口”選項 。
以下各節介紹了這些選項。
顯示預覽窗口
選中此選項后,模式窗口將顯示安裝包之前所選包的依賴項:
安裝與更新選項
(並非適用於所有項目類型。)
“依賴項行為” 用於配置 NuGet 如何決定要安裝哪些版本的依賴包:
- “忽略依賴項” 會跳過安裝任何依賴項,這通常會破壞正在安裝的軟件包。
- 如果選擇“最低” [默認選項],則安裝具有可滿足主要選定包要求的最小版本號的依賴項。
- 如果選擇“最高版本的修補程序” ,則安裝的版本的主要版本號和次要版本號相同,但修補程序版本號最高。 例如,如果指定版本 1.2.2,則會安裝以 1.2 開頭的最高版本
- 如果選擇“最高次要版本” ,則安裝的版本的主要版本號相同,但次要版本號和修補程序版本號最高。 如果指定版本 1.2.2,則會安裝以 1 開頭的最高版本
- 選擇“最高” 可安裝包的最高可用版本。
“文件沖突操作” 指定 NuGet 應如何處理項目或本地計算機中已存在的包:
- “提示” 指示 NuGet 詢問是保留還是覆蓋現有包。
- “全部忽略” 指示 NuGet 跳過覆蓋任何現有包。
- “全部覆蓋” 指示 NuGet 覆蓋任何現有包。
卸載選項
(並非適用於所有項目類型。)
“刪除依賴項” :如果選中,則刪除任何依賴包(如果它們未在項目中的其他位置引用)。
“在存在依賴項時仍強制卸載” :選中后,即使在項目中仍然引用了該包,也會卸載它。 此選項通常與“刪除依賴項” 一起選中,用於刪除包及其安裝的任何依賴項。 不過,使用此選項可能會導致項目中的引用中斷。 在這種情況下,可能需要重新安裝其他包。