使用 Visual Studio 封裝管理員 控制台管理套件 (PowerShell)
Visual Studio 中的 封裝管理員 主控台會使用 PowerShell 命令來與 NuGet 套件互動。 當無法透過 封裝管理員 UI 執行作業時,您可以使用 主控台。 您也可以在控制台中使用 dotnet CLI 或 NuGet CLI 命令。
本文說明如何在 封裝管理員 控制台中使用PowerShell命令尋找、安裝、更新和卸載 NuGet 套件。 如需完整的 封裝管理員 主控台 PowerShell 命令參考,請參閱 PowerShell 參考。
重要
本文中的PowerShell命令和自變數專屬於Visual Studio 封裝管理員控制台。 這些命令與 您可以在一般 PowerShell 環境中使用的 PackageManagement 模組命令 不同。 每個環境都有在其他環境中無法使用的命令,且具有相同名稱的命令可能會在其特定自變數中有所不同。
主控台可用性
從 Visual Studio 2017 開始,當您建立任何 時,NuGet 和 NuGet 封裝管理員 自動安裝。Visual Studio 中的 NET 相關工作負載。 您也可以在 Visual Studio 安裝程式 中選取 [個別元件>程序代碼工具>NuGet 套件管理員] 來安裝 封裝管理員。
您也可以在 [工具>延伸模組] 和 [更新] 或 [延伸模組] 功能表下搜尋 NuGet 封裝管理員 延伸模組。 如果您無法在 Visual Studio 中使用擴充功能安裝程式,您可以直接從 https://dist.nuget.org/index.html \(英文\) 下載擴充功能。
封裝管理員 控制台內建於 Windows 上 Visual Studio 的 封裝管理員。 Visual Studio Code 和 Visual Studio for Mac 不包含控制台。 Visual Studio for Mac 具有用來管理 NuGet 套件的 UI,而對等的控制台命令可透過 NuGet CLI 取得。 如需詳細資訊,請參閱 在 Visual Studio for Mac 中安裝和管理 NuGet 套件。
快速尋找並安裝套件
若要使用 封裝管理員 主控台快速尋找並安裝套件:
在 Visual Studio 中開啟您的專案或方案,然後選取 [工具>NuGet 封裝管理員> 封裝管理員 控制台] 以開啟 [封裝管理員 控制台] 視窗。
在控制台中,輸入
Find-Package
關鍵詞來尋找您要安裝的套件。 例如,若要尋找包含 關鍵詞elmah
的套件,請執行下列命令。 如果您已經知道您想要的套件名稱,請略過此步驟。Find-Package elmah
找到名稱之後,請使用
Install-Package
命令來安裝套件。 例如,若要安裝Elmah.MVC
套件,請輸入:Install-Package Elmah.MVC
如需這些命令的詳細資訊,請參閱 尋找套件 和 安裝套件 小節。
提示
許多主控台作業取決於在Visual Studio中開啟具有已知路徑名稱的解決方案。 如果您有未儲存的解決方案或沒有解決方案,您會看到 [解決方案] 未開啟或未儲存錯誤 。請確定您有開啟且已儲存的解決方案。 若要更正錯誤,請建立並儲存解決方案,或儲存未儲存的解決方案。
控制台控件
若要在 Visual Studio 中開啟 封裝管理員 控制台,請從頂端功能表中選取 [工具>NuGet 封裝管理員> 封裝管理員 控制台]。 控制台是 Visual Studio 視窗,您可以視需要排列和定位。 如需詳細資訊,請參閱在 Visual Studio 中自訂視窗版面配置。
根據預設,主控台命令會針對視窗頂端控制項中顯示的特定套件來源和項目運作:
選取不同的套件來源或專案會變更後續命令的預設值。 若要覆寫單一命令的這些設定,而不變更預設值,大部分的控制台命令都支持 -Source
和 -ProjectName
選項。
若要管理套件來源,請選取齒輪圖示,這會開啟 [工具>選項>NuGet 封裝管理員> 套件來源] 對話方塊。 項目選取器旁邊的控件會清除控制台的內容。
最右邊的按鈕會中斷長時間執行的命令。 例如,執行 Get-Package -ListAvailable -PageSize 500
會列出預設來源上前 500 個可用的套件,例如 nuget.org,這可能需要幾分鐘的時間。
尋找套件
若要在預設來源中尋找套件,請使用 Find-Package。
若要尋找並列出包含特定關鍵詞的套件:
Find-Package <keyword1> Find-Package <keyword2>
若要尋找並列出名稱開頭為字串的套件:
Find-Package <string> -StartWith
根據預設,
Find-Package
會傳回 20 個套件的清單。 用來-First
顯示更多套件。 例如,若要顯示前 100 個套件,請使用:Find-Package <keyword> -First 100
若要列出特定套件的所有版本:
Find-Package <PackageName> -AllVersions -ExactMatch
安裝套件
若要將套件安裝至預設專案,請使用 Install-Package <PackageName>
。 Install-Package 控制台命令會採取下列動作:
- 執行安裝 NuGet 套件時會發生什麼步驟。
- 在主控台視窗中顯示適用的授權條款,並具有隱含合約。 如果您不同意條款,您應該卸載套件。
- 在項目檔和 [參考] 節點下 方案總管 中,加入封裝的參考。 您必須先儲存專案,才能在項目檔中看到變更。
根據預設, Install-Package
將套件新增至主控台視窗指定的預設專案。 若要將套件新增至不是預設值的專案,請使用 -ProjectName
選項。 例如,若要將 Elmah.MVC
套件新增至非預設 UtilitiesLib
專案,請執行下列命令:
Install-Package Elmah.MVC -ProjectName UtilitiesLib
解除安裝套件
若要從預設項目卸載套件,請使用 Uninstall-Package <PackageName>
。 如果您需要尋找套件名稱,請使用 Get-Package 查看預設項目中安裝的所有套件。
Uninstall-Package 會採取下列動作:
- 從專案和任何管理格式移除封裝的參考。 參考不會再出現在 [方案總管] 中。 您可能需要重建專案,才能移除 bin 資料夾中的參考。
- 反轉安裝對 app.config 或 web.config 之套件所做的任何變更。
- 如果沒有剩餘的套件使用這些相依性,則移除先前安裝的相依性。
若要卸載套件及其所有未使用的相依性,請執行:
Uninstall-Package <PackageName> -RemoveDependencies
若要卸載套件,即使其他套件相依,請執行:
Uninstall-Package <PackageName> -Force
更新套件
若要更新套件,請使用 Get-Package 和 Update-Package。 您可以執行下列命令:
若要檢查是否有適用於任何已安裝套件的較新版本:
Get-Package -updates
若要更新特定套件:
Update-Package <PackageName>
若要更新專案中的所有套件:
Update-Package -ProjectName <ProjectName>
若要更新解決方案中的所有套件:
Update-Package
在控制台中使用 NuGet CLI
您也可以使用 NuGet CLI 來執行大部分的主控台作業。 不過,PowerShell 控制台命令會在 Visual Studio 儲存的專案和解決方案內容中運作,而且通常會執行超過其相等 NuGet CLI 命令。 例如,透過 Install-Package
安裝套件會新增專案檔的參考,但 NuGet CLI 命令則不會。 因此,在Visual Studio中工作的開發人員通常會偏好使用主控台命令,而不是 NuGet CLI。
若要在 封裝管理員 控制台中使用 NuGet CLI 命令,請安裝 NuGet.CommandLine 套件。
Install-Package NuGet.CommandLine
上述命令會安裝最新版的 NuGet CLI。 若要安裝特定版本,請使用 -Version
選項。 例如,若要安裝 4.4.1 版,請輸入:
Install-Package NuGet.CommandLine -Version 4.4.1
安裝NuGet.CommandLine
套件之後,您可以透過 封裝管理員 主控台執行所有 NuGet CLI 命令。
擴充套件管理員主控台
某些套件會為主控台安裝新命令。 例如, MvcScaffolding
建立類似 Scaffold
的命令,其會產生 ASP.NET MVC 控制器和檢視:
設定 NuGet PowerShell 設定檔
您可以建立PowerShell配置檔,讓所有PowerShell內容中常用的命令可供使用,因此您不會遺失會話之間的PowerShell設定。 NuGet 支援 NuGet 特定的配置檔,通常位於 %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1。
若要尋找您的使用者設定檔位置,請在控制台中輸入 $profile
:
$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1
若要判斷設定檔是否存在於該位置,請輸入 test-path $profile
。 如果命令傳 False
回 ,您必須在該位置建立具有指定名稱的配置檔。 如需詳細資訊,請參閱 Windows PowerShell 配置檔。