I have a powershell script updating my solution:
Add-PSSnapin Microsoft.SharePoint.PowerShell
write-host $args[0]
Update-SPSolution -Identity PkbInfo.SP.wsp -literalpath $args[0] -GACDeployment
When I execute it with SP 2010 management shell (without Add-PSSnapin of course) it runs ok, but when I try to execute it with nant command:
<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>
I get an error:
[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'.
So it looks like the argument i'm passing is not parsed, which is strange, because Write-Host in both cases (with management shell and nant) displays the correct path. Any ideas why the $args[0] in Update-SPSolution is not converted to actual argument when running with nant?