美文网首页
VSCode lunch.json和task.json记录

VSCode lunch.json和task.json记录

作者: OMG_1bcc | 来源:发表于2021-11-05 09:49 被阅读0次

    task.json

    {

        "version": "2.0.0",

        "tasks": [

            {

                "label": "build",

                "command": "dotnet",

                "type": "process",

                "args": [

                    "build",

                    "${workspaceFolder}/CsharpTest/CsharpTest.csproj",

                    "/property:GenerateFullPaths=true",

                    "/consoleloggerparameters:NoSummary"

                ],

                "problemMatcher": "$msCompile"

            },

            {

                "label": "publish",

                "command": "dotnet",

                "type": "process",

                "args": [

                    "publish",

                    "${workspaceFolder}/CsharpTest/CsharpTest.csproj",

                    "/property:GenerateFullPaths=true",

                    "/consoleloggerparameters:NoSummary"

                ],

                "problemMatcher": "$msCompile"

            },

            {

                "label": "watch",

                "command": "dotnet",

                "type": "process",

                "args": [

                    "watch",

                    "run",

                    "${workspaceFolder}/CsharpTest/CsharpTest.csproj",

                    "/property:GenerateFullPaths=true",

                    "/consoleloggerparameters:NoSummary"

                ],

                "problemMatcher": "$msCompile"

            }

        ]

    }

    1、配置task.json属性

    label:在用户界面上展示的Task标签

            type:Task的类型,分为shell和process两种

                    shell:作为Shell命令运行

                    process:作为一个进程运行

            command:真正执行的命令

            windows:Windows中的特定属性。相应的属性会在Windows中覆盖默认的属性定义。

            group:定义Task属于哪一组

           options:定义cwd(当前工作目录)、env(环境变量)和shell的值

            runOptions:定义Task何时运行及如何运行。

    reevaluateOnRerun:在执行Rerun Last Task命令时,控制是否重新计算变量

            runOn:指定何时运行Task

                    default:只有在运行RunTask命令时,才会触发运行

                    foderOpen:当包含这个tasks.json文件夹被打开时,便会触发运行

            presentation:定义用户界面如何处理Task的输出;输出行为包含如下:

    reveal:控制集成终端是否显示

                    always:集成终端总是会在Task启动时显示

                    never:集成终端不会主动显示

                    silent:当输出不是错误和警告时,集成终端才会显示

            focus:控制集成终端在显示时是否取得焦点

            echo:控制被执行的命令是否在集成终端中输出

            showReuseMessage:控制是否显示显示“Terminal will be reused by tasks,press any key to close it”提示信息

            panel:控制不同的Task在运行时是否共享同一个集成终端

                    shared:共享集成终端

                    dedicated:Task会有一个专用的集成终端

                    new:每次运行的Task都会创建一个新的集成终端

            clear:控制Task在运行前,是否清除集成终端的输出

            group:控制Task是否在同一个集成终端中运行

    launch.json文件

    下面这个例子的launch.json文件包含两个部分,一个用于配置启动launch调试,另一个用于配置附加attatch调试。

    {

      "version": "0.2.0",

      "configurations": [

            {

                "name": ".NET Core Launch (console)",

                "type": "coreclr",

                "request": "launch",

                "preLaunchTask": "build",

                "program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/vscode_test6.dll",

                "args": [],

                "cwd": "${workspaceFolder}",

                "console": "internalConsole",

                "stopAtEntry": false

            },

            {

                "name": ".NET Core Attach",

                "type": "coreclr",

                "request": "attach",

                "processId": "${command:pickProcess}"

            }

        ]

    }

    1、配置launch.json属性

            type:调试器的类型

            request:调试的模式

                    launch:启动程序并调试

                    attach:将程序附加到一个正在运行的进程中进行调试

            name:调试配置的名字

            presentation:使用order、group和hidden属性来定义调试配置的显示

            preLunchTask:定义在调试之前要运行的任务

            postDebugTask:定义在调试结束时要运行的任务

            internalConsoleOptions:定义调试控制台的显示

            serverReadyAction:设置在调试时自动在浏览器中打开URL, "serverReadyAction": { "action": "openExternally", "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)" }

            program:要运行的可执行文件或源代码的路径,此属性的格式通常为:“${workspaceFolder}/bin/Debug//<project-name.dll>",<target framework>是正在为其生成调试项目的框架。这通常在项目.csproj文件中作为“TargetFramework”属性找到。<project-name.dll>调试项目的生成输出dll的名称。这通常与项目文件名相同,多一个.dll的文件扩展名。

            args:要传递给program的参数

            env:环境变量,可以使用此架构将环境变量传递给程序  "env": { "myVariableName":"theValueGoesHere"}

            cwd:调试器的工作目录

            port:要附加到的进程的端口

            stopOnEntry:是否在程序入口进行断点

            console:指定程序输出的位置

                    internalConsole:Visual Studio Code的调试控制台

                    integratedTerminal:Visual Studio Code的集成终端

                    externalTerminal:系统的终端

    2、变量替换

           ${workspaceRoot}  VSCode中打开文件夹的路径

           ${workspaceRootFolderName} VSCode中打开文件夹的路径, 但不包含"/"

           ${workspaceFolder}:在Visual Studio Code中打开的文件夹的完整路径

            ${workspaceFolderBasename}:在Visual Studio Code中打开的文件夹名

            ${file}:当前打开的文件的完整路径

            ${relativeFile}:当前打开的文件的相对workspaceFolder路径

            ${relativeFileDirname}:当前打开的文件的文件夹的相对workspaceFolder路径

            ${fileBasenameNoExtension}:当前打开的文件的文件名,不包含扩展名

            ${fileDirname}:当前打开的文件的文件夹的完整路径

            ${fileExtname}:当前打开的文件的扩展名

            ${cwd}:Task启动时的工作目录

            ${lineNumber}:当前光标的所在的行号

            ${selectedText}:当前打开的文件中选中的文本

            ${execPath}:Visual Studio Code可知行文件的完整路径

            ${defaultBuildTask}:默认的Build Task的名字

            ${env:Name}:引用环境变量

            ${config:Name}:可以引用Visual Studio Code的设置项

            ${input:variableID}:传入输入变量

    相关文章

      网友评论

          本文标题:VSCode lunch.json和task.json记录

          本文链接:https://www.haomeiwen.com/subject/gwtspftx.html