在VS代码和TypeScript中调试Azure DevOps自定义任务时如何设置输入变量

在VS代码和TypeScript中调试Azure DevOps自定义任务时如何设置输入变量,typescript,visual-studio-code,azure-devops,azure-pipelines-build-task,vscode-debugger,Typescript,Visual Studio Code,Azure Devops,Azure Pipelines Build Task,Vscode Debugger,背景: 我正在为Azure DevOps构建自定义构建任务 此任务需要输入参数param1 它是用VS代码(v1.30.1)和TypeScript(tsc——版本状态:v3.2.2)编写的 问题 当我尝试调试我的任务时,我不能为param1传递变量值。中断点被命中,因此部件工作 一些代码: 索引 当我使用tsc从控制台运行它时,它工作得很好;但是当使用VS代码调试器运行时,我似乎永远无法将值传递给param1,因此它在“getInput”方法中崩溃 My launch.json { "ver

背景: 我正在为Azure DevOps构建自定义构建任务

  • 此任务需要输入参数param1
  • 它是用VS代码(v1.30.1)和TypeScript(tsc——版本状态:v3.2.2)编写的
问题 当我尝试调试我的任务时,我不能为param1传递变量值。中断点被命中,因此部件工作

一些代码: 索引

当我使用tsc从控制台运行它时,它工作得很好;但是当使用VS代码调试器运行时,我似乎永远无法将值传递给param1,因此它在“getInput”方法中崩溃

My launch.json

{
"version": "0.2.0",
"configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "TaskName",
        "program": "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\index.ts",
        "outFiles": [
            "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\**\\*.js"
        ]
    }
]}
我也试着补充一下

"env": {
   "param1": "thisBeString"
 }
下的输出文件,但没有成功

在绝望中,我也尝试使用

"args": {
   "--param1": "thisBeString"
}
具有预期结果(失败…)

我也在tasks.json中使用了输入,但没有成功(所以Q&A)


所以问题是在VS代码中调试Azure DevOps扩展时,如何传入变量值。

作为环境变量传递的任务输入参数的名称必须以输入作为前缀

在您的示例中,您可以在启动环境中设置参数
param1
,如下所示:

launch.json

{
"version": "0.2.0",
"configurations": [
    {
        "type": "node",
        "request": "launch",
        "name": "TaskName",
        "program": "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\index.ts",
        "outFiles": [
            "${workspaceFolder}/Extensions\\BuildTasks\\TaskName\\**\\*.js"
        ]
    }
]}
您不需要在代码中重命名
param1
,因为前缀会自动添加到对
getInput()
的调用中

在运行时设置任务环境时,Azure DevOps管道也会添加前缀。这样做有助于降低与其他环境变量冲突的风险

有关Azure Pipelines任务SDK源参考,请参见此处:

有帮助吗?@Matt没有帮助我,但可能是我在VS代码+打字脚本方面缺乏经验。但是我不能将“args”添加到我的tasks.json中,类型为typescript。可能可以改为使用shell(节点)类型来修复,但我无法让它工作:(
"env": {
   "INPUT_param1": "thisBeString"
 }