如何在vscode中访问task.json中的.env变量?

时间:2019-09-19 10:36:31

标签: c# visual-studio-code environment-variables vscode-tasks

我正在尝试在tasks.json中C#项目的vscode文件中的任务中使用环境变量。

在我的launch.json文件中,我有以下代码来解析.env文件:

"configurations": [
  {
    ...
    "envFile": "${workspaceFolder}/.env",
  }
]

然后我在tasks.json文件中完成以下任务:

{
  "label": "login",
  "command": "sh",
  "type": "shell",
  "args": [
    "${workspaceFolder}/etc/login.sh",
    "${env:USERNAME}",
    "${env:PASSWORD}"
  ]
}

这似乎是https://code.visualstudio.com/docs/editor/tasks中隐含的代码,但是(通过在另一个任务中进行回显测试),我发现最后两个args是空白的。经过在线研究之后,我认为我已经找到了原因,configurations..env本身被tasks使用,而不是运行的task.json可以访问,因此无法访问。

如何在env variables中创建(使用)这些tasks.json

1 个答案:

答案 0 :(得分:0)

结帐enter image description here

  /**
   * The environment of the executed program or shell. If omitted
   * the parent process' environment is used.
   */
  env?: { [key: string]: string };

示例

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "diagnostic",
            "type": "shell",
            "options": {
                "cwd": "${workspaceFolder}/beam",
                "env": {
                    "FOO": "baz",
                }
            },
            "command": "printenv",
            "problemMatcher": []
        }
    ]
}

我无法像从launch.json这样的文件中提取这些

我会在vscode存储库上打开一个问题