Question Script v3 non fonctionnel en v4

Plus d'informations
il y a 11 ans 4 mois #18303 par usopp
Hello,

je comprends pas.. mon script fonctionne parfaitement en V3 et je lance sur V4 et + et c'est le drame :unsure:

j'ai ma fonction \"main\" sans argument qui construit et renvoi une collection d'items : New-Collection



[code:1]New-Collection {

....
$collection
}

Function CountError {
Param ([Parameter(Mandatory=$true)][array]$collection)
....
$counters
}

Function A {
Param ([Parameter(Mandatory=$true)][array]$collection)
add-content test.txt (CountError $collection)
}

$a = New-Collection
A $a
[/code:1]

en V3 ça marche ..

en V4 ca me dit que :
[code:1]
A : Impossible de lier l'argument au paramètre « collection », car il a la valeur Null.
+ A $a
+ ~
+ CategoryInfo : InvalidData : (:«») [A], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,A
[/code:1]

:whistle: :unsure:
je comprends pas.. comment $a peut etre vide? sur la v4 et pas en v3

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18305 par Laurent Dardenne
usopp écrit:

je comprends pas.. comment $a peut etre vide? sur la v4 et pas en v3

C'est les joies de Powershell :P

Ceci dit un exemple concret est le bienvenue, et souvent celui-ci répond à la question.

Il faut savoir que chaque version de Powershell nécessite une recette. Car il peut y avoir des bugs de régression et des breakingchanges. Sur ce dernier point, la correction d'un bug, présent dans une version et corrigé dans la version suivante, peut être considéré comme un breakingchange. PS est un logiciel, comme tous les autres, soumis à cette contrainte.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18307 par usopp
Réponse de usopp sur le sujet Re:Script v3 non fonctionnel en v4
oue .. mais quand on te file un environnement de tests en v3 et qu'on te dis aller maintenant on va tester ton script en prod sur du v4 :silly:

ici c'est comme si ma function voulait pas se lancer..donc $a est $null donc rien fonctionne..:unsure:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18309 par Laurent Dardenne
usopp écrit:

oue .. mais quand on te file un environnement de tests en v3 et qu'on te dis aller maintenant on va tester ton script en prod sur du v4 :silly:

Caca en entrée, caca en sortie...

usopp écrit:

ici c'est comme si ma function voulait pas se lancer..donc $a est $null donc rien fonctionne..:unsure:

Le découpage a du bon ici, tu peux isoler le pb.
Et surtout l'usage d'attributs sur les paramètres facilite la remontée de ce type de bug.
Utilise la fonction Resolve-Erreur dispo sur le net, et consulte le champ InvocationInfo. Cela peut préciser la source de l'erreur.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18311 par usopp
Réponse de usopp sur le sujet Re:Script v3 non fonctionnel en v4

Caca en entrée, caca en sortie...


lol ! :D
mais le v3 aime le caca on dirait :pinch:

Le découpage a du bon ici, tu peux isoler le pb.

Et surtout l'usage d'attributs sur les paramètres facilite la remontée de ce type de bug.

Utilise la fonction Resolve-Erreur dispo sur le net, et consulte le champ InvocationInfo. Cela peut préciser la source de l'erreur.


merci je connaissais pas je vais regarder ca demain
au pire j'essayerai peut etre le Set-PSDebug -trace 2 mais ca pique les yeux

mais dans tous les cas je sens que ca va me bouffer un temps de malade ..:whistle:

ps : j'ai oublier de préciser que j'ai même pas acces a du V4 lol.. on me dit juste c'est bon ou pas..super ! :lol:<br><br>Message édité par: usopp, à: 30/10/14 19:55

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18314 par Laurent Dardenne
usopp écrit:

mais le v3 aime le caca on dirait

ici, pas certains que ce soit le coupable :laugh:
usopp écrit:

j'essayerai peut être le Set-PSDebug -trace 2 mais ca pique les yeux

C'est trop verbeux, et selon moi à utiliser en dernier recours.
usopp écrit:

mais dans tous les cas je sens que ca va me bouffer un temps de malade ..:whistle:

Cela dépend si tu peux mettre en place des traces de debug dans un fichier.
Je constate, mais je peux me tromper, que t'es dans un fonctionnement basé sur l'urgence et contre ça il n'y a rien à faire, à part subir.

Ton pb est peut être du à une fonction qui renvoie un élément, ici $null, et pas une collection comme tu le supposes.
Essaie de renvoyer le résultat avec [code:1]@()[/code:1].
Un objet collection vide est différent d'un objet null.
Si je me souviens bien il y a un breakingchange autour de ce point.<br><br>Message édité par: Laurent Dardenne, à: 30/10/14 20:43

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.099 secondes
Propulsé par Kunena