Я не эксперт, но я не думаю, что можно передать аргументы Invoke-Psake. Глядя на последнюю источник Psake в PARAMS для функции Invoke-Psake являются:
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
)
Есть 4 параметра, файл сборки, список задач, .NET версии базы, следует ли выводить документы на ваш задания. Я новичок в PowerShell и psake, и я пытаюсь сделать то же самое, я экспериментировал с делать что-то вроде этого в моем сценарии для достижения того же:
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 с PublishForLive или PublishForStaging , в зависимости от того, что мне нужно:
powershell -NoExit -ExecutionPolicy Unrestricted -Command "& {Import-Module .\tools\psake\psake.psm1; Invoke-psake .\psake-common.ps1 PublishForLive }"
Но, похоже, это не работает для меня! Установка переменной $ environment в предварительном условии задачи, похоже, не влияет. Все еще пытаюсь сделать эту работу ...
Возможно, вам удастся получить ответ на этот вопрос на странице http://groups.google.com/group/psake-users или на http://code.google.com/p/psake/ –
I 'добавлен запрос функции в дискуссионную группу - http://groups.google.com/group/psake-users/browse_thread/thread/cf59508789ab58eb –