我正在使用TFS 2015 Update 2创建发布。我的一个发布步骤是“目标计算机上的PowerShell”任务,我正在使用它来应用DSC配置。
我想使用Script Arguments字段将参数从TFS传递到DSC脚本。
我的脚本如下所示:
Param(
[string]$data
)
configuration ApplyConfig
{
Script Backup {
SetScript = {
#do some stuff with $data
}
TestScript = {
Write-Output "Print param"
Write-Output $data
return $true
}
GetScript = {
return @{"Test" = "test data"}
}
}
}
ApplyConfig
“脚本参数”字段包含以下内容:
-Destination "$(ApplicationPath)"
但是,此时,$ data似乎总是为空。如何将脚本参数字段中定义的参数放入我的脚本资源?
答案 0 :(得分:2)
当你在TestScript中引用$ data时,你需要'using'范围:
TestScript = {
Write-Output "Print param"
Write-Output $using:data
return $true
}
TestScript在不同的PowerShell上下文上执行; 'using'允许您在这些上下文中复制$ data的值。
答案 1 :(得分:1)
我对灵活性的建议是在DSC脚本中声明配置哈希表并传入参数以进行配置。我的Continuous Delivery with TFS / VSTS – Server Configuration and Application Deployment with Release Management博客文章详细介绍了如何在TFS 2015 Update 2中使用DSC和发布管理。
获取参数会成为声明参数的情况,如下所示:
param(
[Parameter(Position=1)]
[string]$myFirstParameter,
[Parameter(Position=2)]
[string]$mySecondParameter
)
然后直接传入值:
Script Arguments字段包含'myFirstValue''mySecondValue'
或更好的变量:
脚本参数字段包含 $(myFirstValue)$(mySecondValue)