Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell安装Nuget软件包_Powershell - Fatal编程技术网

Powershell安装Nuget软件包

Powershell安装Nuget软件包,powershell,Powershell,我正在尝试了解如何使用powershell脚本下载和安装NUnit包 我尝试了Install-Package命令,但是对于NUGet-Package管理器控制台,这是理所当然的。有什么想法吗?您需要NuGet软件包提供商能够使用安装软件包找到并下载NUnit。我认为您遇到的问题是,如果您以前没有为PowerShell安装/配置NuGet软件包提供程序,则第一次运行类似于Install package NUnit的命令时,它将提示您是否要安装NuGet软件包提供程序 例如: Find-Packag

我正在尝试了解如何使用powershell脚本下载和安装NUnit包


我尝试了
Install-Package
命令,但是对于NUGet-Package管理器控制台,这是理所当然的。有什么想法吗?

您需要NuGet软件包提供商能够使用安装软件包找到并下载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.  

您需要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
正如你所看到的,我有裸体。但是,如果您没有安装,您可以使用:

> 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'.".

我的答案建立在@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
正如你所看到的,我有裸体。但是,如果您没有安装,您可以使用:

> 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\ProviderAssembly

我尝试了很多方法,但这一方法帮助我解决了这个问题:

>Open Powershell (as Admin)
>[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
>Install-PackageProvider -Name NuGet
然后您可以在以下位置看到“nuget”文件夹:C:\Program Files\PackageManagement\ProviderAssembly