簡體   English   中英

Powershell 安裝 Nuget 包

[英]Powershell Install Nuget package

我試圖找出如何使用 Power Shell 腳本下載和安裝 NUnit 包。

我嘗試了Install-Package命令,但這當然是針對 NUGet 包管理器控制台的。 有什么想法嗎?

您需要 NuGet 包提供程序才能使用Install-Package查找和下載 NUnit。 我認為您遇到的問題是,如果您之前沒有為 PowerShell 安裝/配置 NuGet 包提供程序,則第一次運行Install-Package NUnit類的命令時,它會提示您是否要安裝NuGet 包提供程序。

示例:

Find-Package NUnit
WARNING: The specified PackageManagement provider 'NuGet' is not available.
Find-Package : No match was found for the specified search criteria and package name 'NUnit'.
At line:1 char:1
+ Find-Package NUnit
+ ~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (Microsoft.Power...ets.FindPackage:FindPackage) [Find-Package], Exception
+ FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage

但是在我配置了 NuGet 提供程序之后,它工作得很好:

Find-Package -Name Nunit

Name                           Version          Source                         Summary                                                                                                              
----                           -------          ------                         -------                                                                                                              
NUnit                          3.2.0            nuget.org                      NUnit is a unit-testing framework for all .Net languages with a strong TDD focus.  

我的答案是建立在@Negorath 的基礎上。 我相信他們遺漏了一些細節:

> Get-PackageProvider -ListAvailable

Name                     Version          DynamicOptions
----                     -------          --------------
msi                      3.0.0.0          AdditionalArguments
msu                      3.0.0.0
NuGet                    2.8.5.208        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate
PowerShellGet            1.0.0.1          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscResource, RoleCapability, Command, PublishLocation, ScriptSourceL... Programs                 3.0.0.0          IncludeWindowsInstaller, IncludeSystemComponent

如您所見,我有 NuGet。 但如果你不這樣做,你可以安裝:

> Register-PackageSource -Name NuGet -ProviderName PowerShellGet -Verbose
VERBOSE: Repository details, Name = 'PSGallery', Location = 'https://www.powershellgallery.com/api/v2/'; IsTrusted = 'False'; IsRegistered = 'True'.
VERBOSE: Performing the operation "Register Package Source." on target "Package Source 'NuGet' () in provider 'PowerShellGet'.".

我嘗試了很多東西,然后這個幫助我解決了這個問題:

>Open Powershell (as Admin)
>[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
>Install-PackageProvider -Name NuGet

然后您可以在以下位置看到“nuget”文件夾:C:\\Program Files\\PackageManagement\\ProviderAssemblies

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM