Я обычно устанавливаю режим сборки в соответствии с предложением @manojlds, передавая его в качестве параметра в вызове Invoke-Psake. Но если вы снова окажетесь в ситуации, когда хотите изменить значение объекта в задаче A и получить доступ к измененному значению в задаче B, вот как это сделать:
Тот факт, что измененное значение $ build_mode недоступно в задаче B, связано с ограничением возможностей powershell. Когда вы задаете значение для переменной $ buildMode в Задаче A, это изменение вносится в область действия Задачи A, поэтому за ее пределами значение переменной остается неизменным.
Один из способов добиться того, чего вы хотите, - это использовать хеш-таблицу, ограниченную всем сценарием, для хранения ваших объектов:
Код:
properties {
#initializes your global hash
$script:hash = @{}
$script:hash.build_mode = "Release"
}
task default -depends Compile_Debug, Test
task Compile_Debug {
$script:hash.build_mode = "Debug"
# Compilation tasks here that use the Debug value
}
task Test {
# Test related tasks that depend on $script:hash.build_mode being updated.
}
Единственное предостережение в том, что каждый раз, когда вы хотите обратиться к своему режиму сборки, вы должны использовать длинное имя $ script: hash.build_mode вместо простого $ build_mode