在 Visual Studio 中使用套件管理員主控台安裝及管理套件 (PowerShell)

Nuget 套件管理員主控台可讓您使用 NuGet PowerShell 命令來尋找、安裝、解除安裝及更新 NuGet 套件。 在套件管理員 UI 無法執行作業的情況下,則必須使用主控台。 若要在主控台中使用 nuget.exe CLI 命令,請參閱在主控台中使用 nuget.exe CLI

主控台內建於 Windows 上的 Visual Studio 中。 它不包含在 Visual Studio for Mac 或 Visual Studio Code 中。

重要

此處所列的命令專屬於 Visual Studio 中的 封裝管理員 主控台,與一般 PowerShell 環境中提供的套件管理模組命令不同。 具體來說,每個環境都有無法在其他環境中使用的命令,而具有相同名稱的命令也可能與其特定引數不同。 在 Visual Studio 中使用套件管理主控台時,會套用本主題中所述的命令和引數。

尋找並安裝套件

例如,尋找並安裝套件是透過三個簡單的步驟來完成:

  1. 在 Visual Studio 中開啟專案/方案,並使用[工具 > ] NuGet 封裝管理員 > 封裝管理員 [主控台] 命令開啟主控台。

  2. 尋找您要安裝的套件。 如果您已經知道這一點,請跳到步驟 3。

    # Find packages containing the keyword "elmah"
    Find-Package elmah
    
  3. 執行安裝命令:

    # Install the Elmah package to the project named MyProject.
    Install-Package Elmah -ProjectName MyProject
    

重要

主控台中可用的所有作業也可以使用 NuGet CLI 來完成。 不過,主控台命令會在 Visual Studio 內容與已儲存的專案/解決方案中運作,而且通常會比對等的 CLI 命令完成更多操作。 例如,透過主控台安裝套件會將參考新增至專案,而 CLI 命令則不會。 基於這個理由,使用 Visual Studio 的開發人員通常更喜歡使用主控台而不是 CLI。

提示

許多主控台作業都取決於在 Visual Studio 中使用已知的路徑名稱開啟解決方案。 如果您有未儲存的解決方案或是沒有解決方案,則會看到錯誤「未開啟或儲存方案。 請確定您有開放且已儲存的解決方案。」這表示主控台無法判斷方案資料夾。 儲存未儲存的方案,或建立並儲存方案 (如果您沒有開啟的方案),應該可以更正錯誤。

開啟主控台與主控台控制項

  1. 使用 [工具 > ] NuGet 封裝管理員 > 封裝管理員 [主控台] 命令,在 Visual Studio 中開啟主控台。 主控台是一個 Visual Studio 視窗,可依您的需要進行排列和定位 (請參閱在 Visual Studio 中自訂視窗版面配置)。

  2. 根據預設,主控台命令會針對視窗頂端的控制項中設定的特定套件來源與專案進行操作:

    Package Manager Console controls for package source and project

  3. 選取不同的套件來源和/或專案會變更後續命令的預設值。 若要在不變更預設值的情況下覆寫這些設定,大部分的命令都支援 -Source-ProjectName 選項。

  4. 若要管理套件來源,請選取齒輪圖示。 這是 [工具 > 選項 > ] > NuGet 封裝管理員 [封裝來源] 對話方塊的快捷方式,如封裝管理員 UI頁面上所述。 此外,專案選取器右側的控制項可清除主控台的內容:

    Package Manager Console settings and clear controls

  5. 最右邊的按鈕會中斷長時間執行的命令。 例如,執行 Get-Package -ListAvailable -PageSize 500 會列出預設來源 (例如 nuget.org) 上的前 500 個套件,這可能需要幾分鐘的時間才能完成。

    Package Manager Console stop control

安裝套件

# Add the Elmah package to the default project as specified in the console's project selector
Install-Package Elmah

# Add the Elmah package to a project named UtilitiesLib that is not the default
Install-Package Elmah -ProjectName UtilitiesLib

請參閱 Install-Package

在主控台中安裝套件時執行的步驟,與安裝套件時會發生什麼事中所述相同,此外還會:

  • 主控台會在其視窗中顯示適用的授權條款,並附帶隱含的合約。 如果您不同意這些條款,則應該立即將套件解除安裝。
  • 此外,對套件的參考也會加入至專案檔中,並顯示在 [方案總管] 中的 [參考] 節點下,您必須儲存專案才能直接查看專案檔中的變更。

解除安裝套件

# Uninstalls the Elmah package from the default project
Uninstall-Package Elmah

# Uninstalls the Elmah package and all its unused dependencies
Uninstall-Package Elmah -RemoveDependencies 

# Uninstalls the Elmah package even if another package depends on it
Uninstall-Package Elmah -Force

請參閱 Uninstall-Package。 如果您需要尋找識別碼,請使用 Get-Package 來查看目前安裝在預設專案中的所有套件。

解除安裝套件會執行下列動作:

  • 從專案中移除套件的參考 (以及任何使用中的管理格式)。 參考不會再出現在 [方案總管] 中。 (您可能需要重建專案,才能看到它已從 Bin 資料夾中移除。)
  • 反轉安裝套件時對 app.configweb.config 所做的任何變更。
  • 如果沒有剩餘的套件使用這些相依性,則移除先前安裝的相依性。

更新套件

# Checks if there are newer versions available for any installed packages
Get-Package -updates

# Updates a specific package using its identifier, in this case jQuery
Update-Package jQuery

# Update all packages in the project named MyProject (as it appears in Solution Explorer)
Update-Package -ProjectName MyProject

# Update all packages in the solution
Update-Package

請參閱 Get-PackageUpdate-Package

尋找套件

# Find packages containing keywords
Find-Package elmah
Find-Package logging

# List packages whose ID begins with Elmah
Find-Package Elmah -StartWith

# By default, Get-Package returns a list of 20 packages; use -First to show more
Find-Package logging -First 100

# List all versions of the package with the ID of "jquery"
Find-Package jquery -AllVersions -ExactMatch

請參閱 Find-Package。 在 Visual Studio 2013 與更早版本中,請改為使用 Get-Package

主控台的可用性

從 Visual Studio 2017 開始,當您選取任何 時,會自動安裝 NuGet 和 NuGet 封裝管理員。NET 相關工作負載;您也可以在Visual Studio安裝程式中檢查[個別元件 > 程式碼工具 > ] NuGet套件管理員選項,以個別安裝它。

此外,如果您在 Visual Studio 2015 和更早版本中遺漏NuGet 封裝管理員,請檢查[工具 > 擴充功能和更新...],然後搜尋NuGet 封裝管理員延伸模組。 如果您無法在 Visual Studio 中使用擴充功能安裝程式,您可以直接從 https://dist.nuget.org/index.html \(英文\) 下載擴充功能。

Visual Studio for Mac 目前不提供套件管理員主控台。 但是,對等的命令則可透過 NuGet CLI 取得。 Visual Studio for Mac 確實有一個用於管理 NuGet 套件的 UI。 請參閱在專案中包含 NuGet 套件

套件管理員主控台未隨附於 Visual Studio Code。

擴充套件管理員主控台

某些套件會為主控台安裝新命令。 例如,MvcScaffolding 會建立如下所示的 Scaffold 命令,以產生 ASP.NET MVC 控制器與檢視:

Installing and using MvcScaffold

設定 NuGet PowerShell 設定檔

PowerShell 設定檔可讓您在任何使用 PowerShell 的地方提供常用的命令。 NuGet 支援 NuGet 專用設定檔,通常位於下列位置:

%UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1

若要尋找設定檔,請在主控台中輸入 $profile

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

如需詳細資訊,請參閱 Windows PowerShell 設定檔

在主控台中使用 nuget.exe CLI

若要讓nuget.exe CLI可在 封裝管理員 主控台中使用,請安裝NuGet。主控台中的 CommandLine套件:

# Other versions are available, see https://www.nuget.org/packages/NuGet.CommandLine/
Install-Package NuGet.CommandLine -Version 4.4.1