C# NuGet包管理命令

 

NuGet Package Manager Console 內置於 Visual Studio 在 Windows 2012 和更高版本。 (不包含在 Visual Studio 用於 Mac 或 Visual Studio Code。)html

控制檯,你可使用NuGet PowerShell 命令若要查找,安裝、 卸載和更新 NuGet 程序包。 使用控制檯是在包管理器 UI 不提供瞭如何執行操做的狀況下必需的。 若要使用nuget.exe命令在控制檯中,請參閱使用控制檯中的 CLI nuget.exejquery

例如,查找和安裝的包,可以使用三個簡單步驟:web

  1. 在 Visual Studio 中,打開項目/解決方案並打開控制檯使用工具 > NuGet 包管理器 > 程序包管理器控制檯命令。shell

  2. 查找你想要安裝的程序包。 若是你已經知道此,請跳到步驟 3。json

    ps
    # Find packages containing the keyword "elmah" Find-Package elmah 
  3. 運行安裝命令:緩存

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

重要app

在控制檯中可用的全部操做也均可以與NuGet CLI。 可是,控制檯命令在 Visual Studio 和已保存的項目/解決方案的上下文中運行,而且一般完成多個其等效的 CLI 命令。 例如,安裝經過控制檯的包將引用添加到項目而 CLI 命令不運行。 爲此,一般在 Visual Studio 中工做的開發人員喜歡使用 CLI 到控制檯。ide

提示工具

許多控制檯操做取決於使用已知的路徑名稱在 Visual Studio 中打開解決方案。 若是你有未保存的解決方案或沒有解決方案,您能夠看到此錯誤,"是未打開或保存解決方案。 請確保你已打開並保存解決方案。" 這表示控制檯沒法肯定解決方案的文件夾。 保存未保存的解決方案,或建立和保存解決方案,若是你尚未打開,應糾正該錯誤。佈局

打開的控制檯和控制檯控件

  1. 打開 Visual Studio 中使用控制檯工具 > NuGet 包管理器 > 程序包管理器控制檯命令。 在控制檯中,能夠排列和定位你的喜愛的 Visual Studio 窗口 (請參閱自定義 Visual Studio 中的窗口布局)。

  2. 默認狀況下,控制檯命令運行鍼對特定的包源和項目中控件的窗口的頂部設置:

    對包源和項目程序包管理器控制檯控制

  3. 選擇一個不一樣的包源和/或項目更改這些默認設置的後續命令。 覆蓋而無需更改默認設置,這些設置的大多數命令支持-Source-ProjectName選項。

  4. 若要管理的包源,選擇齒輪圖標。 這是一個指向快捷方式工具 > 選項 > NuGet 包管理器 > 程序包源對話框上所述包管理器 UI頁。 此外,右側爲項目選擇器控件清除控制檯的內容:

    程序包管理器控制檯設置和清除控件

  5. 最右邊的按鈕中斷長時間運行的命令。 例如,運行Get-Package -ListAvailable -PageSize 500列出上默認源 (如 nuget.org),可能須要幾分鐘時間運行的前 500 包。

    程序包管理器控制檯中止控件

安裝的包

ps
# 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 

請參閱安裝包

安裝的包執行下列操做:

  • 與默示協議的控制檯窗口中顯示適用的許可條款。 若是你不一樣意這些條款,你應當即卸載程序包。
  • 在正在使用的任何引用格式添加到項目的引用。 引用隨後將出如今解決方案資源管理器和適用的參考格式文件。 可是,請注意,採用 PackageReference,則須要先保存該項目才能直接看到項目文件中的更改。
  • 緩存包:
    • PackageReference: 在緩存包%USERPROFILE%\.nuget\packages和鎖定文件即project.assets.json更新。
    • packages.config: 建立packages在程序包文件入子文件夾中的解決方案根目錄和副本的文件夾。 package.config更新文件。
  • 更新app.config和/或web.config若是包使用源和配置文件轉換
  • 若是項目中尚不存在,請安裝任何依賴項。 中所述,這可能會更新在過程當中,包版本依賴項解析
  • 若是可用,請在 Visual Studio 窗口中顯示包的自述文件。

提示

安裝的包的主要優點之一Install-Package在控制檯中的命令時,它將對項目的引用,就像使用程序包管理器 UI。 與此相反, nuget install CLI 命令僅下載包,並不會自動添加引用。

卸載包

ps
# 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 

請參閱卸載包。 使用Get 包查看當前安裝在默認項目中,若是你須要查找標識符的全部包。

卸載程序包執行下列操做:

  • 將對包從項目 (和正在使用的任何引用格式) 的引用。 引用再也不出如今解決方案資源管理器。 (你可能須要從新生成該項目才能看到它從刪除Bin文件夾。)
  • 反轉對所作任何更改app.configweb.config時已安裝了包。
  • 若是沒有剩餘的包使用這些依賴關係,依賴之前安裝中刪除項。

提示

Install-PackageUninstall-Package命令具備與管理在項目中,引用的好處nuget uninstallCLI 命令。

更新程序包

ps
# 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 包更新包

查找包

ps
# 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 

請參閱查找包。 在 Visual Studio 2013 和更早版本,使用Get 包相反。

控制檯可用性

在 Visual Studio 2017,NuGet 和 NuGet 包管理器將自動安裝時選擇任何。提供與.NET 相關的工做負荷;你就能夠還單獨安裝它,經過檢查各個組件 > 代碼工具 > NuGet 包管理器在 Visual Studio 2017 安裝程序中的選項。

此外,若是你缺乏 NuGet 包管理器在 Visual Studio 2015 及更早版本,請檢查工具 > 擴展和更新...和搜索 NuGet 包管理器擴展。 若是你沒法使用 Visual Studio 中的擴展安裝程序,你能夠下載直接從擴展https://dist.nuget.org/index.html

程序包管理器控制檯不是當前適用於 Visual Studio for mac。 等效命令,可是,這些功能經過NuGet CLI。 適用於 Mac 的 visual Studio 也用於管理 NuGet 包存在一些 UI。 請參閱中你的項目包括 NuGet 包

程序包管理器控制檯不包括 Visual Studio 代碼。

擴展包管理器控制檯

某些包安裝新的控制檯的命令。 例如,MvcScaffolding建立等命令Scaffold下面所示,這將生成 ASP.NET MVC 控制器和視圖:

安裝和使用 MvcScaffold

設置 NuGet PowerShell 配置文件

PowerShell 配置文件,能夠提供經常使用的命令,只要你使用 PowerShell。 NuGet 支持一般在如下位置找到 NuGet 特定配置文件:

%UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1

若要查找配置文件,請鍵入$profile在控制檯中:

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

有關更多詳細信息,請參閱Windows PowerShell 配置文件

使用 nuget.exe CLI 在控制檯中

若要使 nuget.exe CLI可用在程序包管理器控制檯中,安裝NuGet.CommandLine從控制檯的包:

ps
# Other versions are available, see http://www.nuget.org/packages/NuGet.CommandLine/ Install-Package NuGet.CommandLine -Version 4.4.1
相關文章
相關標籤/搜索