Question

J'ai un script PowerShell mettant à jour ma solution:

Add-PSSnapin Microsoft.SharePoint.PowerShell
write-host $args[0]
Update-SPSolution -Identity PkbInfo.SP.wsp -literalpath $args[0] -GACDeployment 

Lorsque je l'exécute avec SP 2010 Gestion Shell (sans add-psnapin bien sûr), il fonctionne bien, mais lorsque j'essaie de l'exécuter avec la commande Nant:

  <target name="sp.update">
    <exec failonerror="true" program="${powershell.exe}">   
    <arg value="-noprofile" />
    <arg value="-nologo" />
    <arg value="-noninteractive" />
    <arg value="-command" />
    <arg value="${ps.script.name} ${ps.copyto.folder}" />
    </exec>
  </target>

Je reçois une erreur:

     [exec] Update-SPSolution : c:\shared\PkbInfo.wsp: The specified file was no
t found.
     [exec] At C:\Users\me\Documents\production\sharepoint\nant_powershell
.ps1:5 char
     [exec] :18
     [exec] + Update-SPSolution <<<<  -Identity PkbInfo.SP.wsp -literalpath $arg
s[0] -GACDe
     [exec] ployment
     [exec]     + CategoryInfo          : ReadError: (:) [Update-SPSolution], Fi
leNotFound
     [exec]    Exception
     [exec]     + FullyQualifiedErrorId : Microsoft.SharePoint.PowerShell.SPCmdl
etUpdateSo
     [exec]    lution
     [exec]
     [exec] Update-SPSolution : Zgłoszono wyjątek typu 'Microsoft.SharePoint.Pow
erShell.SPC
     [exec] mdlet+SkipCurrentRecordException'.

Il semble donc que l'argument que je passe n'est pas analysé, qui est étrange, car l'hôte en écriture dans les deux cas (avec coque de gestion et nant) affiche le chemin correct. Toutes idées pourquoi les ARGS $ [0] dans UPDATE-SPSOLUTION n'est pas convertie en argument réel lors de la course avec Nant?

Était-ce utile?

La solution

Try and put a $() around your literal path, like so:

Update-SPSolution -Identity PkbInfo.SP.wsp -literalpath $($args[0]) -GACDeployment  

You can also use Resolve-Path if your path is relative

On a side note: remember that Update-SPSolution only works as long as you update existing artefacts (eg. no new or deleted modules/features/rootfiles)

Autres conseils

You try to run:

Update-SPSolution -Identity PkbInfo.SP.wsp 

And you get the error:

 [exec] Update-SPSolution : c:\shared\PkbInfo.wsp: The specified file was no  
t found.

Check your filename :)

(I know you can have different identity and filename, but nobody ever changes that, right?)

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top