I'm following Get Started with the PowerShell Gallery which states that the PowerShellGet module exists in Windows 10 (which I am using - build 14721). To confirm, I am running PowerShell v5:
>$PSVersionTable
Name Value
---- -----
PSVersion 5.0.14271.1000
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.14271.1000
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
Get Started with the PowerShell Gallery states:
PowerShellGet also requires the NuGet provider to work with the PowerShell Gallery. You will be prompted to install the NuGet provider automatically upon first use of PowerShellGet if the NuGet provider is not in one of the following locations: •$env:ProgramFiles\PackageManagement\ProviderAssemblies
•$env:LOCALAPPDATA\PackageManagement\ProviderAssemblies
I don't have anything in those locations:
>ls $env:LOCALAPPDATA\PackageManagement\ProviderAssemblies
>ls $env:ProgramFiles\PackageManagement\ProviderAssemblies
ls : Cannot find path 'C:\Program Files\PackageManagement\ProviderAssemblies' because it does not exist.
At line:1 char:1
+ ls $env:ProgramFiles\PackageManagement\ProviderAssemblies
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Program File...viderAssemblies:String) [Get-ChildItem], ItemNotFoundException
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Get Started with the PowerShell Gallery then states:
Or, you can run Install-PackageProvider -Name NuGet -Force to automate the download and installation of the NuGet provider.
If I try that:
>Install-PackageProvider -Name NuGet -Force
Install-PackageProvider : The term 'Install-PackageProvider' is not recognized as the name of a cmdlet, function, script file, or operable program.
correct and try again.
At line:1 char:1
+ Install-PackageProvider -Name NuGet -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Install-PackageProvider:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
I'm very confused. I have PowerShell v5 but it seems I don't have everything that's supposed to be there, namely PowerShellGet.
Can someone explain why?
"Install-PackageProvider" was not introduced until PowerShell 5.1
When I did Get-Module -ListAvailable -Name PackageManagement
, as Adam Bertram suggested, I found that there was a different version in my home folder, cruft from a previous install of Windows that got copied across to a new machine:
> Get-Module -ListAvailable -Name PackageManagement
Directory: C:\Users\<myusername>\Documents\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Script 1.4.7 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
Directory: C:\Program Files\WindowsPowerShell\Modules
ModuleType Version Name ExportedCommands
---------- ------- ---- ----------------
Binary 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa..
Deleting this version, or before that just forcing the system version to be used with Import-Module PackageManagement -RequiredVersion 1.0.0.1
, allowed me to get the NuGet provider installed.
This error means that PowerShell can't find the module that Install-PackageProvider is a part of. Install-PackageProvider is a member of the PackageManagement module. To verify this, run Get-Module
Get-Module -ListAvailable -Name PackageManagement
If this errors out, you'll need to ensure you have the PackageManagement folder a folder inside of your $env:PSModulePath. Here's a quick way to look through each of the folders for the PackageManagement folder.
$env:psmodulepath.Split(';') | foreach {gci $_ -filter '*packagemanagement*'}
If nothing comes back, you don't even have the PackageManagement module folder anywhere where it can be auto-imported by PowerShell.
If that's the case, I'd recommend to reinstall PowerShell v5 RTM.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With