Команда Powershell Find-Package не работает с исходным кодом пакета nuget v3
Как видно из заголовка, я не могу использовать команду Find-Package с URL-адресом nuget v3:
https://api.nuget.org/v3/index.json
Если я запускаю команду:
Find-Package nuget.versioning -Source https://api.nuget.org/v3/index.json
Я получаю ошибку, что совпадение не найдено. Изменение команды на:
Find-Package nuget.versioning -Source https://www.nuget.org/api/v2
Работает отлично.
Нужно ли обновлять программное обеспечение, чтобы оно работало? Я использую Powershell версии 5, поэтому я не уверен, какие шаги мне нужно предпринять, чтобы это исправить.
0 ответов
С Powershell 5.1 он не работает, как вы описали. Но с PowerShell Core 7 он работает правильно:
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.
Обратите внимание, что вы можете проверить свою версию PowerShell через PSVersionTable
переменная:
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
В PowerShell Core 7 вы увидите, что он использует версию 3 поставщика пакетов NuGet, поэтому он поддерживает протокол 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…