Non sono esperto, ma non penso sia possibile passare argomenti a Invoke-Psake. Guardando sulla più recente fonte per Psake i params per la funzione Invoke-Psake sono:
param(
[Parameter(Position=0,Mandatory=0)]
[string]$buildFile = 'default.ps1',
[Parameter(Position=1,Mandatory=0)]
[string[]]$taskList = @(),
[Parameter(Position=2,Mandatory=0)]
[string]$framework = '3.5',
[Parameter(Position=3,Mandatory=0)]
[switch]$docs = $false
)
Ci sono 4 parametri, il file di build, un elenco di attività, la versione di .NET framework, sia a documenti di uscita del tuo compiti. Sono nuovo di PowerShell e psake e sto cercando di fare la stessa cosa, sto sperimentando con il fare qualcosa di simile a questo nel mio script per ottenere la stessa cosa:
properties {
$environment = "default"
}
task PublishForLive -precondition { $environment = "Live"; return $true; } -depends Publish {
}
task PublishForStaging -precondition { $environment = "Staging"; return $true; } -depends Publish {
}
task Publish {
Write-Host "Building and publishing for $environment environment"
#Publish the project...
}
quindi chiamando psake con PublishForLive o PublishForStaging , di cui ho bisogno:
powershell -NoExit -ExecutionPolicy Unrestricted -Command "& {Import-Module .\tools\psake\psake.psm1; Invoke-psake .\psake-common.ps1 PublishForLive }"
Ma non sembra funzionare per me! L'impostazione della variabile $ $ nella precondizione dell'attività sembra non avere alcun effetto. Sto ancora cercando di farlo funzionare ...
fonte
2010-02-06 13:36:01
Si può avere miglior fortuna ottenere una risposta a questa domanda su http://groups.google.com/group/psake-users o http://code.google.com/p/psake/ –
I 'Ho aggiunto una richiesta di funzionalità per il gruppo di discussione - http://groups.google.com/group/psake-users/browse_thread/thread/cf59508789ab58eb –