Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Powershell Find-Package command doesn't work with nuget v3 package source

As the title says I cannot use the Find-Package command with the nuget v3 url:

https://api.nuget.org/v3/index.json

If I run the command:

Find-Package nuget.versioning -Source https://api.nuget.org/v3/index.json

I get an error that no match was found. Changing the command to:

Find-Package nuget.versioning -Source https://www.nuget.org/api/v2

Works fine.

Do I need to upgrade some software to get this to work? I'm running Powershell version 5 so I'm not sure what steps I need to take to fix this.

like image 991
Spencer Ruport Avatar asked Jan 25 '19 15:01

Spencer Ruport


People also ask

How do I find NuGet packages?

You can find packages directly at https://nuget.org/packages, or from the Visual Studio Package Manager UI or Package Manager Console with nuget.org as a source. All packages from nuget.org are routinely scanned for viruses.

How do I fix nu1101?

Solution. Examine the project's dependencies in Visual Studio to be sure you're using the correct package identifier and version number. Also check that the NuGet configuration identifies the package sources you are expected to be using. If you use packages that have Semantic Versioning 2.0.

What command can you use to search for a package in the NuGet Package Manager console?

Quickly find and install a package Open your project or solution in Visual Studio, and select Tools > NuGet Package Manager > Package Manager Console to open the Package Manager Console window. In the console, enter Find-Package with a keyword to find the package you want to install.


1 Answers

With Powershell 5.1, it fails as you described. But with PowerShell Core 7, it works correctly:

PS> Find-Package nuget.versioning -Source https://api.nuget.org/v3/index.json -ProviderName NuGet

Name                           Version          Source           Summary
----                           -------          ------           -------
NuGet.Versioning               4.6.4            nuget.org        NuGet's implementation of Semantic Versioning.

Note that you can check for your PowerShell version through the PSVersionTable variable:

PS> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.0.0
PSEdition                      Core
GitCommitId                    7.0.0
OS                             Microsoft Windows 10.0.18362
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

On PowerShell Core 7, you will see that it uses version 3 of the NuGet package provider, thus it supports protocol v3.

PS> Get-PackageProvider

Name                     Version          DynamicOptions
----                     -------          --------------
NuGet                    3.0.0.1          Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate
PowerShellGet            2.2.3.0          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, AllowPrereleaseVersions, Filter, Tag, Includes, DscResource, RoleCapability, Command, Accep…
like image 84
mabead Avatar answered Nov 15 '22 08:11

mabead