2 votes

Find-Package n'a pas de paramètre -ScriptSourceLocation

Pourquoi est-ce que Find-Package ne reconnaît pas le -ScriptSourceLocation paramètre ?

PS H:\> help Find-Package -Full
NAME
    Find-Package

SYNOPSIS
    Finds software packages in available package sources.

SYNTAX
    Find-Package [[-Name] <String[]>] [-AcceptLicense] [-AllowPrereleaseVersions] [-AllVersions] [-Command <String[]>] [-Credential <PSCredential>]
    [-DscResource <String[]>] [-Filter <String>] [-Force] [-ForceBootstrap] [-IncludeDependencies] [-Includes {Cmdlet | DscResource | Function |
    RoleCapability | Workflow}] [-MaximumVersion <String>] [-MinimumVersion <String>] [-PackageManagementProvider <String>] [-ProviderName {Bootstrap |
    NuGet | PowerShellGet}] [-Proxy <Uri>] [-ProxyCredential <PSCredential>] [-PublishLocation <String>] [-RequiredVersion <String>] [-RoleCapability
    <String[]>] [-ScriptPublishLocation <String>] ***[-ScriptSourceLocation <String>]*** [-Source <String[]>] [-Tag <String[]>] [-Type {Module | Script | All}]
    [<CommonParameters>]

Cependant, une exception est produite si elle est utilisée.

PS H:\> Find-Package -ProviderName 'NuGet' -ScriptSourceLocation 'https://www.powershellgallery.com/api/v2/items/psscript'
Find-Package : A parameter cannot be found that matches parameter name 'ScriptSourceLocation'.
At line:1 char:36
+ Find-Package -ProviderName 'NuGet' -ScriptSourceLocation 'https://www ...
+                                    ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Find-Package], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.PackageManagement.Cmdlets.FindPackage

0voto

Alexander Miles Points 2207

Je pense que ce que vous voyez ici est un bug, soit avec Find-Package ou il pourrait s'agir d'une bizarrerie ou d'un problème avec les ensembles de paramètres nommés. Je signalerais ce problème à la Page de problèmes de Powershell Core car il semble que ce soit toujours un problème avec la version actuelle de PowerShell 6. D'autres tests montrent que si vous ne spécifiez pas l'attribut -ProviderName le paramètre fonctionne bien et est reconnu.

0voto

JosefZ Points 15232

Vous ne pouvez pas appliquer le ScriptSourceLocation paramètre pour NuGet fournisseur. Considérons le script suivant :

$FindPackage_Cmdlet=Get-Command Find-Package
$FindPackage_Cmdlet.ParameterSets.Count                    ## 2
$FindPackage_Cmdlet.DefaultParameterSet                    ## $Null (not defined)
$FindPackage_Cmdlet.ParameterSets | ForEach-Object {
    $aux = $_.Parameters.Name

    $_.Name, ( 'ScriptSourceLocation' -in $aux ) -join ' '  ## NuGet False
                                                            ## PowerShellGet True

    $aux -join ' -'                                         ## (parameters)
}

De l'autre côté, le ScriptSourceLocation fonctionne pour PowerShellGet fournisseur :

(Find-Package -ProviderName 'PowerShellGet' -ScriptSourceLocation 'https://www.powershellgallery.com/api/v2/items/psscript').Count
4956

Mise à jour

1. Veuillez noter que votre extrait de Get-Help Find-Package semble être incomplète. Malheureusement, les deux modèles syntaxiques reposent sur [-ProviderName {NuGet | Bootstrap | PowerShellGet}] :

SYNTAX

Find-Package [[-Name] <string[]>] [-IncludeDependencies] [-AllVersions] [-Source <string[]>] [-Credential <pscredential>] [-Proxy <uri>] [-ProxyCredential <pscredential>] [-RequiredVersion <string>] [-MinimumVersion <string>] [-MaximumVersion <string>] [-Force] [-ForceBootstrap] 
     [-ProviderName {NuGet | Bootstrap | PowerShellGet}] [-ConfigFile <string>] [-SkipValidate] [-Headers <string[]>] [-FilterOnTag <string[]>] [-Contains <string>] [-AllowPrereleaseVersions] [<CommonParameters>]

Find-Package [[-Name] <string[]>] [-IncludeDependencies] [-AllVersions] [-Source <string[]>] [-Credential <pscredential>] [-Proxy <uri>] [-ProxyCredential <pscredential>] [-RequiredVersion <string>] [-MinimumVersion <string>] [-MaximumVersion <string>][-Force] [-ForceBootstrap]
     [-ProviderName {NuGet | Bootstrap | PowerShellGet}] [-AllowPrereleaseVersions] [-PackageManagementProvider <string>] [-PublishLocation <string>] [-ScriptSourceLocation <string>] [-ScriptPublishLocation <string>] [-Type {Module | Script | All}] [-Filter <string>] [-Tag <string[]>] [-Includes {DscResource | Cmdlet | Function | Workflow | RoleCapability}] [-DscResource <string[]>] [-RoleCapability <string[]>] [-Command <string[]>] [-AcceptLicense] [<CommonParameters>]

2. Testé en utilisant l'intellisense intégrée ( Visual Studio , PowerShell-ISE , PowerShell 6.2 , Windows PowerShell 5.1 ) :

ProviderName { Bootstrap | NuGet }

PS D:\PShell> Find-Package -ProviderName Bootstrap -Source
IncludeDependencies      Force                    ErrorAction
AllVersions              ForceBootstrap           WarningAction
Source                   ConfigFile               InformationAction
Credential               SkipValidate             ErrorVariable
Proxy                    Headers                  WarningVariable
ProxyCredential          FilterOnTag              InformationVariable
Name                     Contains                 OutVariable
RequiredVersion          AllowPrereleaseVersions  OutBuffer
MinimumVersion           Verbose                  PipelineVariable
MaximumVersion           Debug

[string[]] Source

Nom du fournisseur PowerShellGet

PS D:\PShell> Find-Package -ProviderName PowerShellGet -ScriptSourceLocation
IncludeDependencies        PackageManagementProvider  AcceptLicense
AllVersions                PublishLocation            Verbose
Source                     ScriptSourceLocation       Debug
Credential                 ScriptPublishLocation      ErrorAction
Proxy                      Type                       WarningAction
ProxyCredential            Filter                     InformationAction
Name                       Tag                        ErrorVariable
RequiredVersion            Includes                   WarningVariable
MinimumVersion             DscResource                InformationVariable
MaximumVersion             RoleCapability             OutVariable
Force                      AllowPrereleaseVersions    OutBuffer
ForceBootstrap             Command                    PipelineVariable

[string] ScriptSourceLocation 

3. L'intellisense montre même quatre schémas syntaxiques différents dans PowerShell 5.1 :

                          activate intellisense here pressing Ctrl+Space
PS D:\PShell> Get-Package
Get-Package          Get-PackageProvider  Get-PackageSource

Get-Package [[-Name] <string[]>] [-RequiredVersion <string>] [-MinimumVersion <string>] [-MaximumVersion <string>] [-AllVersions] [-Force] [-ForceBootstrap] [-ProviderName <string[]>] [-Destination <string>] [-ExcludeVersion] [-Scope <string>] [-SkipDependencies] [<CommonParameters>]

Get-Package [[-Name] <string[]>] [-RequiredVersion <string>] [-MinimumVersion <string>] [-MaximumVersion <string>] [-AllVersions] [-Force] [-ForceBootstrap] [-ProviderName <string[]>] [-Scope <string>] [-PackageManagementProvider <string>] [-Type <string>] [-AllowClobber] [-SkipPublisherCheck] [-InstallUpdate] [-NoPathUpdate] [-AllowPrereleaseVersions] [<CommonParameters>]

Get-Package [[-Name] <string[]>] [-RequiredVersion <string>] [-MinimumVersion <string>] [-MaximumVersion <string>] [-AllVersions] [-Force] [-ForceBootstrap] [-ProviderName <string[]>] [-AdditionalArguments <string[]>] [<CommonParameters>]

Get-Package [[-Name] <string[]>] [-RequiredVersion <string>] [-MinimumVersion <string>] [-MaximumVersion <string>] [-AllVersions] [-Force] [-ForceBootstrap] [-ProviderName <string[]>] [-IncludeWindowsInstaller] [-IncludeSystemComponent] [<CommonParameters>]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X