1
$buildDef = "Service.xxxx"
$buildDefFull="MyProject/$buildDef"

Start-Job -Name 'Service1' -ScriptBlock { tfsbuild start /collection:"http://yyyy:8080/tfs/DefaultCollection"  /builddefinition:"$buildDefFull" }

我收到此错误:

Option builddefinition requires a value.
    + CategoryInfo          : NotSpecified: (Option builddefinition requires a value.:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
    + PSComputerName        : localhost

我似乎无法让 tfsbuild 接受启动作业中的参数......如果我只是在没有工作的情况下执行 tfsbuild 部分,它实际上运行良好。

任何想法我应该如何传递这个价值?发送

4

1 回答 1

1

$buildDefFull变量超出了脚本块的范围。

您有 2 个选项:

PowerShell 3+

使用Using范围修饰符:

$buildDef = "Service.xxxx"
$buildDefFull="MyProject/$buildDef"

Start-Job -Name 'Service1' -ScriptBlock { tfsbuild start /collection:"http://yyyy:8080/tfs/DefaultCollection"  /builddefinition:"$Using:buildDefFull" }

任何版本

定义并将参数传递给脚本块:

$buildDef = "Service.xxxx"
$buildDefFull="MyProject/$buildDef"

Start-Job -Name 'Service1' -ScriptBlock { param($bdf) tfsbuild start /collection:"http://yyyy:8080/tfs/DefaultCollection"  /builddefinition:"$bdf" } -ArgumentList $buildDefFull
于 2015-06-02T00:14:54.137 回答