How can I change the default build output directory in Visual Studio Code

10,748

Solution 1

VSCode uses dotnet CLI and particularly for building the dotnet build command. Among others, it has the following option

-o|--output <OUTPUT_DIRECTORY>
Directory in which to place the built binaries.

Assuming your building task is defined in .vscode/tasks.json file:

{
    "version": "2.0.0",
    "tasks": [
        {
            "taskName": "build",
            "command": "dotnet build",
            ...
        }
    ]
}

You may add -o arg with the desired path. For example, change to:

...
"command": "dotnet build -o ${workspaceRoot}/bin/another_Debug/",
...

where ${workspaceFolder} is one of VSCode predefined variables:

${workspaceFolder} the path of the workspace folder that contains the tasks.json file

Solution 2

If you want a consistent behavior from VSCode, VS and the dotnet CLI, I suggest editing the csproj file to set the output path by adding this:

<PropertyGroup>
  <OutputPath>..\custom-output-dir\</OutputPath>
  <!-- Remove this if you multi-target and need the created net*, netcoreapp* subdirs -->
  <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>

The second property prevents the SDK from adding a subdirectory for the target framework, which is needed for multi-targeting builds, but not so if you only target a single framework (= when you only have a TargetFramework property).

You can also use other properties when setting the path, for instance:

<OutputPath>..\custom-output-dir\$(Configuration)\$(MSBuildProjectName)\</OutputPath>

Assuming your project is MyProj.csproj, the output path would then be ..\cusotm-output-dir\Debug\MyProj\

Share:
10,748
Eduardo Slee
Author by

Eduardo Slee

Updated on June 14, 2022

Comments

  • Eduardo Slee
    Eduardo Slee almost 2 years

    I'm new to Visual Studio Code. I want to define the output directory in my csproj. I don't know where to change in Visual Studio Code the destination folder to locate the dll files generated.

    • Lithium
      Lithium over 6 years
      Is it not Right Click a project >> Properties>>Build>>Output>>Output Path like the normal visual studios?
    • Eduardo Slee
      Eduardo Slee over 6 years
      No...it does not work this way in Visual Studio Code