我想要做一些自动化的工作,其中一个步骤是为 Visual Studio C# 项目 安装Nuget包。在Visual Studio中,我可以在 Package Manager Console 面板运行命令Install-Package JetBrains.Annotations
。然而,在普通的PowerShell会话中,同样的命令不起作用。如何在普通的PowerShell会话中为一个 Visual Studio C# 项目 安装包?
我想要做一些自动化的工作,其中一个步骤是为 Visual Studio C# 项目 安装Nuget包。在Visual Studio中,我可以在 Package Manager Console 面板运行命令Install-Package JetBrains.Annotations
。然而,在普通的PowerShell会话中,同样的命令不起作用。如何在普通的PowerShell会话中为一个 Visual Studio C# 项目 安装包?
*-Package
cmdlets。我曾经使用NuGet做过一些自动化工作,需要在NuGet CLI和PowerShell *-Package
cmdlets之间进行选择。由于nuget list --allversion
自2017年2月以来就无法使用了(请参见GitHub ticket),因此我决定使用PowerShell cmdlets。PS> Install-Package -Name NuGet.Core -Source MyNuGet -Credential Contoso\TestUser
-ProviderName
来定义提供程序名称给 NuGet
:
我写这篇答案的原因是,尽管这个问题被标记为重复,但 stackoverflow 的答案要么是使用 Visual Studios 内置的管理控制台(它是作为单独的 PowerShell 主机实现的,因此无法通过标准 PowerShell 使用),要么是使用 NuGet CLI 工具(它不能满足我所有的自动化需求)。该答案不涵盖使用 "*-Package`" cmdlet。 更新 1 以下是安装指定一个或多个软件包提供程序名称以限定软件包搜索范围。您可以通过运行 Get-PackageProvider 命令来获取软件包提供程序名称。
...
可接受的值:msi、Programs、msu、Bootstrap、PSModule、nuget、chocolatey
log4Net
NuGet 包的示例: Install-Package log4net -ProviderName NuGet -Source https://www.nuget.org/api/v2 -Scope CurrentUser -Force
-Verbose
开关。据我所知,您必须使用NuGet的v2
API。Install-Package log4net...
会将log4net安装在当前工作目录的Visual Studio项目中,而不仅仅是安装在计算机上,对吗? - Just a learner~\AppData\Local\PackageManagement\NuGet\Packages\log4net.2.0.8\log4net.2.0.8.nupkg
下,但是 cmldet 有一个 -Destination
参数,可以尝试使用该参数。 - Moerwald
install-package xxx -source https://www.nuget.org/api/v2
这样的简单命令就可以为您安装相应的包。(建议以管理员身份运行) - LoLance