如何在Visual Studio代码中更改默认构建输出目录

时间:2017-10-26 16:43:18

标签: c# visual-studio-code .net-core csproj dotnet-cli

我是Visual Studio Code的新手。我想在csproj中定义输出目录。我不知道在Visual Studio Code中更改目标文件夹的位置以找到生成的dll文件。

2 个答案:

答案 0 :(得分:3)

VSCode使用dotnet CLI,特别是用于构建dotnet build命令。其中,它有以下选项

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

假设您的构建任务在.vscode/tasks.json文件中定义:

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

您可以使用所需路径添加-o arg。例如,更改为:

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

其中${workspaceFolder}是VSCode predefined variables之一:

  

$ {workspaceFolder}包含tasks.json文件的工作区文件夹的路径

答案 1 :(得分:2)

如果你想从VSCode,VS和dotnet CLI获得一致的行为,我建议编辑csproj文件以通过添加这个来设置输出路径:

 public function graph(Request $request) 
    {
        $statistics = DiraStatistics::whereBetween('date_access',array($request->from, $request->to))->get();

        $question_asked_sum = $statistics->sum('question_asked');
        $low_confidence_sum = $statistics->sum('low_confidence');
        $no_answer_sum = $statistics->sum('no_answer');
        $missing_intent_sum = $statistics->sum('missing_intent');

        return view('AltHr.Chatbot.graph', compact('question_asked_sum', 'low_confidence_sum', 'no_answer_sum', 'missing_intent_sum'));
    }

第二个属性阻止SDK为目标框架添加子目录,这是多目标构建所需的,但如果您只定位单个框架则不会这样(=当您只有<PropertyGroup> <OutputPath>..\custom-output-dir\</OutputPath> <!-- Remove this if you multi-target and need the created net*, netcoreapp* subdirs --> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> </PropertyGroup> 属性时)。

您还可以在设置路径时使用其他属性,例如:

TargetFramework

假设您的项目为<OutputPath>..\custom-output-dir\$(Configuration)\$(MSBuildProjectName)\</OutputPath> ,则输出路径为MyProj.csproj