ms-release-management - 如何在 DSC 脚本资源中引用脚本参数

标签 ms-release-management dsc

我正在使用 TFS 2015 Update 2 创建版本。我的发布步骤之一是“目标计算机上的 PowerShell”任务,我用它来应用 DSC 配置。

我想使用“脚本参数”字段将参数从 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 似乎始终为 null。如何将“脚本参数”字段中定义的参数获取到我的脚本资源中?

最佳答案

当您在测试脚本中引用 $data 时,您需要“using”范围:

TestScript = {
    Write-Output "Print param"
    Write-Output $using:data

   return $true
}

TestScript 在不同的 PowerShell 上下文中执行; “using”允许您在这些上下文中复制 $data 的值。

关于ms-release-management - 如何在 DSC 脚本资源中引用脚本参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37126267/

相关文章:

visual-studio - 具有多个 Web 项目的解决方案的 VSTS 构建定义

visual-studio - 发布管理导致构建失败

windows-server-2012-r2 - 为什么这种使用共享文件夹的 DSC 文件资源只成功一次?

PowerShell 5.0 DSC 和导入

powershell - Visual Studio 发布管理 - 使用 ps/dsc 部署遇到服务器证书错误

azure - Visual Studio Team Services 发布/部署失败 - "No package found with specified pattern"

azure - 在创建新的 AD 林和域期间重新启动后,具有 DSC 扩展的 ARM 模板失败并出现安全错误

azure - Azure Automation DSC 是否尊重 Service Fabric 更新域?

azure - 使用 DSC 和 ARM 模板传递凭据并使用 Visual Studio 2017 进行部署