Nie jestem ekspertem, ale nie sądzę, że możliwe jest przekazanie argumentów do Invoke-Psake. Patrząc na najnowsze źródła Psake params dla funkcji Invoke-Psake są:
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
)
Istnieją 4 parametry, plik build, lista zadań, wersja .NET framework, czy dokumentacja wyjściowego przetwornika zadania. Jestem nowy w powershell i psake i staram się robić to samo, jestem eksperymentować z robieniem czegoś takiego w moim skrypcie, aby osiągnąć to samo:
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...
}
następnie wywołanie psake z PublishForLive lub PublishForStaging , w zależności od tego, czego potrzebuję:
powershell -NoExit -ExecutionPolicy Unrestricted -Command "& {Import-Module .\tools\psake\psake.psm1; Invoke-psake .\psake-common.ps1 PublishForLive }"
Ale to nie działa dla mnie! Ustawienie zmiennej $ environment w warunku zadaniowym wydaje się nie mieć żadnego efektu. Nadal próbuję zrobić to ...
Możesz uzyskać więcej odpowiedzi na to pytanie na http://groups.google.com/group/psake-users lub na http://code.google.com/p/psake/ –
I "Dodano zadanie dotyczące funkcji do grupy dyskusyjnej - http://groups.google.com/group/psake-users/browse_thread/thread/cf59508789ab58eb –