Je ne suis pas expert, mais je ne pense pas qu'il est possible de passer des arguments à Invoke-Psake. En regardant sur la dernière source pour Psake les params pour la fonction Invoke-Psake sont:
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
)
Il y a 4 paramètres, votre fichier de construction, une liste de tâches, la version du framework .NET, que ce soit à la sortie docs de votre les tâches. Je suis nouveau et Powershell psake et je suis en train de faire la même chose, j'expérimente avec faire quelque chose comme ça dans mon script pour obtenir la même chose:
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...
}
ensuite appeler psake avec PublishForLive ou PublishForStaging , celui que j'ai besoin:
powershell -NoExit -ExecutionPolicy Unrestricted -Command "& {Import-Module .\tools\psake\psake.psm1; Invoke-psake .\psake-common.ps1 PublishForLive }"
Mais cela ne semble pas fonctionner pour moi! La définition de la variable $ environment dans la précondition de la tâche semble n'avoir aucun effet. Toujours essayer de faire fonctionner ...
Vous aurez peut-être plus de chance d'obtenir une réponse à cette question sur http://groups.google.com/group/psake-users ou sur http://code.google.com/p/psake/ –
Ajout d'une demande de fonctionnalité au groupe de discussion - http://groups.google.com/group/psake-users/browse_thread/thread/cf59508789ab58eb –