DerDani81
DerDani81

Reputation: 1067

VS Code Workspace launch configuration section does not work

My VS Code Workspace file includes a launch configuration and tasks section, so a developer can run the Azure Functions local.

But it seams that the launch configuration from workspace file will be ignored.

If i add launch.json and tasks.json with the same content, it works without any problems.

.code-workspace:

{
    "folders": [
        {
            "path": "."
        }
    ],
    "launch": {
        "configurations": [
            {
                "name": "Attach to .NET Functions",
                "type": "coreclr",
                "request": "attach",
                "processId": "${command:azureFunctions.pickProcess}"
            }
        ]
    },
    "tasks": {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "clean",
                "command": "dotnet",
                "args": [
                    "clean",
                    "/property:GenerateFullPaths=true",
                    "/consoleloggerparameters:NoSummary"
                ],
                "type": "process",
                "problemMatcher": "$msCompile"
            },
            {
                "label": "build",
                "command": "dotnet",
                "args": [
                    "build",
                    "/property:GenerateFullPaths=true",
                    "/consoleloggerparameters:NoSummary"
                ],
                "type": "process",
                "dependsOn": "clean",
                "group": {
                    "kind": "build",
                    "isDefault": true
                },
                "problemMatcher": "$msCompile"
            },
            {
                "label": "clean release",
                "command": "dotnet",
                "args": [
                    "clean",
                    "--configuration",
                    "Release",
                    "/property:GenerateFullPaths=true",
                    "/consoleloggerparameters:NoSummary"
                ],
                "type": "process",
                "problemMatcher": "$msCompile"
            },
            {
                "label": "publish",
                "command": "dotnet",
                "args": [
                    "publish",
                    "--configuration",
                    "Release",
                    "/property:GenerateFullPaths=true",
                    "/consoleloggerparameters:NoSummary"
                ],
                "type": "process",
                "dependsOn": "clean release",
                "problemMatcher": "$msCompile"
            },
            {
                "type": "func",
                "dependsOn": "build",
                "options": {
                    "cwd": "${workspaceFolder}/src/ProjectAbc/bin/Debug/netcoreapp2.2"
                },
                "command": "host start",
                "isBackground": true,
                "problemMatcher": "$func-watch"
            }
        ]
    }
}

Expected Behavior: If i press F5 the lauch configuration from workspace settings should be used to build and run the Azure functions.

Actual Behavior: If i press F5 VS Code want to create a launch.json file based on an environment.

enter image description here

Upvotes: 2

Views: 1818

Answers (1)

suziki
suziki

Reputation: 14093

I have reproduce your error,

This is the solution:

Please notice that Global launch configuration need you to add launch in user settings.

Have a look of this.

Your settings.json file should be like this:

{
    "azureFunctions.deploySubpath": ".",
    "azureFunctions.projectLanguage": "JavaScript",
    "azureFunctions.projectRuntime": "~2",
    "debug.internalConsoleOptions": "neverOpen",
    "azureFunctions.preDeployTask": "npm prune",

    "launch": {
        "version": "0.2.0",
        "configurations": [
        {
            "name": "Attach to Node Functions",
            "type": "node",
            "request": "launch",
            "port": 9229,
            "preLaunchTask": "func: host start",
            "outFiles": [
                "${workspaceRoot}/TimerTrigger/index.js"
            ]
        },
        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}\\index.js"
        }
    ]
    }
        //---------------------------
"tasks":{
    "version": "2.0.0",
"tasks": {
    "version": "2.0.0",
    "tasks": [
        {
            "label": "clean",
            "command": "dotnet",
            "args": [
                "clean",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "type": "process",
            "problemMatcher": "$msCompile"
        },
        {
            "label": "build",
            "command": "dotnet",
            "args": [
                "build",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "type": "process",
            "dependsOn": "clean",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": "$msCompile"
        },
        {
            "label": "clean release",
            "command": "dotnet",
            "args": [
                "clean",
                "--configuration",
                "Release",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "type": "process",
            "problemMatcher": "$msCompile"
        },
        {
            "label": "publish",
            "command": "dotnet",
            "args": [
                "publish",
                "--configuration",
                "Release",
                "/property:GenerateFullPaths=true",
                "/consoleloggerparameters:NoSummary"
            ],
            "type": "process",
            "dependsOn": "clean release",
            "problemMatcher": "$msCompile"
        },
        {
            "type": "func",
            "dependsOn": "build",
            "options": {
                "cwd": "${workspaceFolder}/src/ProjectAbc/bin/Debug/netcoreapp2.2"
            },
            "command": "host start",
            "isBackground": true,
            "problemMatcher": "$func-watch"
        }
    ]
    }
}
    }

Then you will never face that error. The VS Code will never try to create the launch.json file again.

Then It should work, please notice that your tasks configure is not correct! Your current problem comes from the tasks config not read by VSCode. Modify it and it should work fine.

enter image description here

Upvotes: 1

Related Questions