我想为我的 Cake 脚本获取一个Argument<IEnumerable<string>>
(或string[]
,或其他任何东西 - 一个可迭代的字符串列表),但我不知道如何将它从build.ps1
to 传递给cake.exe
.
这是我到目前为止所拥有的:
在 build.ps1 中:
param(
# ...
[ValidateSet("Bar", "Baz")]
[string[]]$Foo
)
# ...
$fooArg = If ($Foo.Count -gt 0) {"-foo=`(`"{0}`"`)" -f [string]::Join("`",`", $Foo)} Else {""}
Invoke-Expression "$CAKE_EXE ... $fooArg"
在 build.cake 中:
var baz = Argument<IEnumerable<string>>("foo", new string[0]);
但是,当我执行此操作时,出现以下错误:
指定了多个构建脚本。
找不到要执行的构建脚本。
第一个参数必须是构建脚本的路径,
或者构建脚本应该遵循默认的脚本名称约定。用法:Cake.exe [build-script] [-verbosity=value] [-showdescription] [-dryrun] [..]
示例:Cake.exe 示例:Cake.exe build.cake -verbosity=quiet 示例:Cake.exe build.cake -showdescription
选项:-verbosity=value 指定要显示的信息量。(安静、最小、正常、详细、诊断) -showdescription 显示有关任务的描述。-dryrun 执行试运行。-version 显示版本信息。-help 显示使用信息。-experimental 使用 Roslyn 脚本引擎的夜间构建。
这样做的正确方法是什么?