Search code examples
.net-corevisual-studio-codevscode-tasks

Issue using VSCode tasks with dotnet run


I have two projects in a parent folder:

parentFolder
   | webApiFolder
   | testsFolder

Using the terminal, I need to pass the --project parameter to dotnet run. As such, I figure it'd be easier to just create a task and run the task instead. However, I can't get the task to work.

Task:

{
            "label": "run api",
            "command": "dotnet",
            "type": "process",
            "args": [
                "run",
                "--project ${workspaceFolder}\\WebApi\\mercury-ms-auth.csproj"
            ],
            "problemMatcher": "$msCompile"
        }

Output:

> Executing task: C:\Program Files\dotnet\dotnet.exe run --project G:\Git_CS\mercury-ms-auth\WebApi\mercury-ms-auth.csproj <

Couldn't find a project to run. Ensure a project exists in g:\Git_CS\mercury-ms-auth, or pass the path to the project using --project.
The terminal process terminated with exit code: 1

However, if I run dotnet run --project G:\Git_CS\mercury-ms-auth\WebApi\mercury-ms-auth.csproj, that launches the project perfectly.

Similarly, my test and code coverage task works perfectly:

{
            "label": "test with code coverage",
            "command": "dotnet",
            "type": "process",
            "args": [
                "test",
                "${workspaceFolder}/Tests/Tests.csproj",
                "/p:CollectCoverage=true",
                "/p:CoverletOutputFormat=cobertura"
            ],
            "problemMatcher": "$msCompile"
        }

Solution

  • One solution is to "type": "shell" and pass through the whole command.

    {
        "label": "run api",
        "command": "dotnet run --project ${workspaceFolder}\\WebApi",
        "type": "shell",
        "problemMatcher": "$msCompile"
    }