【发布时间】:2016-05-19 10:15:24
【问题描述】:
使用 psake 4.5.0 我尝试以多种不同方式运行我的default.ps1 文件,同时传递了-properties 和-parameters,但这些值只是被忽略了 .ps1-script 的根范围。
执行相对(在子文件夹中使用 psake):
.\psake-4.5.0\psake.ps1 .\default.ps1 BuildSolution -properties @{"a"="a";"b"="b";"c"="c";"d"="d"} -parameters @{"w"="w";"x"="x";"y"="y";"z"="z"}
使用导入的模块执行:
Import-Module .\psake-4.5.0\psake.psm1
Invoke-Psake .\default.ps1 BuildSolution -properties @{"a"="a";"b"="b";"c"="c";"d"="d"} -parameters @{"w"="w";"x"="x";"y"="y";"z"="z"}
通过安装的 Chocolatey-package 执行:
psake .\default.ps1 BuildSolution -properties "@{'a'='a';'b'='b';'c'='c';'d'='d'}" -parameters "@{'w'='w';'x'='x';'y'='y';'z'='z'}"
通过cmd.exe执行:
psake-4.5.0\psake.cmd default.ps1 BuildSolution -properties "@{'a'='a';'b'='b';'c'='c';'d'='d'}" -parameters "@{'w'='w';'x'='x';'y'='y';'z'='z'}"
现在,default.ps1 只是在调试所有这些值:
// Since "properties" doesn't get populated, I also try "Param"
Param(
$w = $w, // Trying to populate from passed param
$x = $null, // Trying to default to null-value
$y // Trying another syntax, hoping for population
// "$z" left out, hoping for population
)
properties {
$a = $a
$b = $null
$c
}
Write-Host "a: $a"
Write-Host "b: $b"
Write-Host "c: $c"
Write-Host "d: $d"
Write-Host "w: $w"
Write-Host "x: $x"
Write-Host "y: $y"
Write-Host "z: $z"
Task BuildSolution -Depends Clean {
Write-Host "Running BuildSolution"
}
Task Clean {
Write-Host "Running Clean"
}
输出在所有情况下都是:
a:
b:
c:
d:
w:
x:
y:
z:
将properties 和/或parameters 传递给psake 的正确语法是什么?
【问题讨论】:
-
@almog.ori 不是真的,这是一个非常理论的例子,而我的例子非常具体。
标签: build continuous-integration build-process psake