visual-studio - 如何在正常的 PowerShell 会话(不在 Visual Studio 中)运行 Nuget PowerShell cmdlet Install-Package?
问题描述
我想做一些自动化的事情,其中一个步骤是为Visual Studio C# 项目安装 Nuget 包。在 Visual Studio 中,我可以Install-Package JetBrains.Annotations
在包管理器控制台面板中运行该命令。但是,相同的命令在正常的 PowerShell 会话中不起作用。如何在正常的 PowerShell 会话中为Visual Studio C# 项目安装包?
解决方案
我会使用*-Package
cmdlet。我使用 NuGet 完成了一些自动化工作,我不得不在 NuGet CLI 或 PowerShell *-Package
cmdlet 之间进行选择。由于nuget list --allversion
自 2017 年 2 月以来不起作用(请参阅GitHub 票证)。我决定使用 PowerShell cmdlet。
PS> Install-Package -Name NuGet.Core -Source MyNuGet -Credential Contoso\TestUser
您可能必须将提供程序名称定义为NuGet
via -ProviderName
:
指定一个或多个包提供程序名称,以将包搜索范围限定在其中。您可以通过运行 Get-PackageProvider cmdlet 获取包提供程序名称。
...
接受的值:msi、Programs、msu、Bootstrap、PSModule、nuget、chocolatey
尽管这个问题被标记为重复,但我写这个答案的原因是:
将此问题标记为重复的stackoverflow答案是指使用 Visual Studios 内置的管理控制台(作为单独的 Powershell 主机实现,因此不能通过标准 PowerShell 使用)或通过 NuGet CLI 工具(未涵盖所有我的自动化要求)。此答案未涵盖使用“*-Package” cmdlet。
更新 1
以下是如何安装log4Net
NuGet 包的示例:
Install-Package log4net -ProviderName NuGet -Source https://www.nuget.org/api/v2 -Scope CurrentUser -Force
获取更多信息在后台安装什么,您可以附加-Verbose
交换机。
据我所知,您必须使用v2
NuGet 的 API。
推荐阅读
- android - 使用 RxJava 执行单元测试时获取 NullPointerException
- proxysql - ProxySQL 设置主机组问题
- apache-flink - Flink fs s3 shaded hadoop:使用 StreamingFileSink 到 S3 时出现 KerberosAuthException
- hive - 在作业执行期间启动的映射器
- php - Laravel curl 请求导致“403 Forbidden”响应
- if-statement - 基于另一个工作表中的复选框的 Googlesheets 条件格式
- android - 如何让 WifiManger 在 API 29 Android 中工作
- azure-logic-apps - 是否可以检索当前运行开始的时间?
- r - 在 R 包 HMSC 中运行 Mcmc 时如何修复 tcrossprod 错误
- ios - Firebase 电子邮件身份验证未在单击链接时打开 iOS 应用程序