No soy un experto, pero no creo que sea posible pasar argumentos a Invoke-Psake. Buscando en la última fuente para Psake los parametros para la función Invoke-Psake son:
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
)
Hay 4 parámetros, el archivo de creación, una lista de tareas, la versión del marco .NET, ya sea a documentos de salida de su Tareas. Soy nuevo en PowerShell y psake y yo estoy tratando de hacer lo mismo, estoy experimentando con hacer algo como esto en mi script para conseguir lo mismo:
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...
}
psake Entonces llamando con PublishForLive o PublishForStaging , lo que sea que necesite:
powershell -NoExit -ExecutionPolicy Unrestricted -Command "& {Import-Module .\tools\psake\psake.psm1; Invoke-psake .\psake-common.ps1 PublishForLive }"
¡Pero parece que no funciona para mí! Establecer la variable de entorno $ en la condición previa de la tarea parece no tener ningún efecto. Intentando hacer que esto funcione ...
Puede que tenga mejor suerte para obtener una respuesta a esta pregunta en http://groups.google.com/group/psake-users o en http://code.google.com/p/psake/ –
I Agregué una solicitud de función al grupo de discusión: http://groups.google.com/group/psake-users/browse_thread/thread/cf59508789ab58eb –