debugging vscode launch.json调试并打开特定的url

b4qexyjb  于 2022-12-13  发布在  Vscode
关注(0)|答案(6)|浏览(279)

给定以下自动生成的Visual Studio Code launch.json配置:
我希望在调试时可以用这个来启动浏览器到localhost:5000/swagger,但是我已经尝试了六种不同的方法,都没有效果。它只是打开到localhost:5000。我在这里错过了什么?除了按Ctrl+空格键查看列表之外,没有关于所有可用属性的通用文档(我可以找到),这没有太大帮助。
我忽略了我失败的尝试,让这个工作如何我想...

{
    "name": "Launch Demo.Api",
    "type": "coreclr",
    "request": "launch",
    "preLaunchTask": "build",
    "program": "${workspaceRoot}/Demo.Api/bin/Debug/netcoreapp2.1/Demo.Api.dll",
    "args": [],
    "cwd": "${workspaceRoot}/Demo.Api",
    "stopAtEntry": false,
    "launchBrowser": {
        "enabled": true,
        "args": "${auto-detect-url}",
        "windows": {
            "command": "cmd.exe",
            "args": "/C start ${auto-detect-url}"
        },
        "osx": {
            "command": "open"
        },
        "linux": {
            "command": "xdg-open"
        }
    },
    "env": {
        "ASPNETCORE_ENVIRONMENT": "Development"
    }
}
pdsfdshx

pdsfdshx1#

this one also works for me on VSCode 1.39.2

// Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser
"serverReadyAction": {
    "action": "openExternally",
    "pattern": "\\bNow listening on:\\s+(https?://\\S+)",
    "uriFormat": "%s/swagger"
},
pvabu6sv

pvabu6sv2#

这一条适合我:

"launchBrowser": {
    "enabled": true,
    "args": "${auto-detect-url}",
    "windows": {
      "command": "cmd.exe",
      "args": "/C start ${auto-detect-url}/swagger"
    }
  }
but5z9lq

but5z9lq3#

我尝试了以下方法,似乎有效

"launchBrowser": {
"enabled": true,
"args": "${auto-detect-url}/swagger",
pb3skfrl

pb3skfrl4#

另一种选择是使用VSCode 1.48(2020年7月),它添加了调试:“打开链接”命令:
添加了一个新的Debug: Open Link命令来快速调试任何URL。
以前,要调试浏览器,您必须安装Debugger for Chrome扩展并编写launch.json配置文件来调试页面。
此命令允许您调试任何URL,而无需其他启动配置。

题材:地歌
如果您在活动编辑器中选择了URL,它将自动打开该URL。
否则,VS代码将提示您输入一个URL,并在剪贴板中预填充该URL(如果有)。
您可以通过debug.javascript.debugByLinkOptions设置调整此命令中使用的调试配置。
最后一个设置可用于指定正确的证书
默认情况下,我们将为每个工作区使用不同的用户数据目录。
您可以通过在用户设置中添加以下内容来使用“稳定”目录:

"debug.javascript.debugByLinkOptions": {
  "userDataDir": "C:/Users/user/my-user-data-dur"
}

我不知道你需要摆弄哪些标志才能让Chrome满意,但这个配置应该让你以一种不会被重置的方式设置它们。
而VSCode 1.50(2020年9月)将improve that feature

  • 添加一个按钮,以便直接从“运行与调试”选项卡启动该工具(而不必打开组件面板).

目前,Run and debug选项卡仅建议创建launch.json文件,或使用Node.js调试终端,但现在直接建议Open link特性会更简单。

  • 如果在填写URL时自动将其保存在.vscode/settings.json中,以避免每次都要重新填写,那将是非常好的。

结果见commit dc22997

ntjbwcob

ntjbwcob5#

如果你正在调试节点项目,这对我很有效。

在我的前端应用程序中启动.json(Angular)

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch via npm",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceFolder}",
      "runtimeExecutable": "npm",
      "runtimeArgs": [ "run-script", "start" ],
      "console": "externalTerminal"
    }
  ]
}

包含npm脚本的.json包

在我的例子中,由于我使用ng serve调试Angular,所以我必须指定 --open=true 参数,以便启动浏览器

"version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --ssl --ssl-cert %APPDATA%\\ASP.NET\\https\\%npm_package_name%.pem --ssl-key %APPDATA%\\ASP.NET\\https\\%npm_package_name%.key --open=true",
    "build": "ng build",
    "watch": "ng build --watch --configuration development",
    "test": "ng test",
    "prestart": "node aspnetcore-https"
  },
omvjsjqw

omvjsjqw6#

所以我在Linux上运行C# API时遇到了这个问题,这是对我有效的解决方案
.vsocde/launch.json中,将此添加到配置属性中

"launchBrowser": {
    "enabled": true,
    // change this to your OS name, linux, osx or windows
    // you also need to change the command since xdg-open only works on linux
    "linux": {
        "command": "xdg-open",
        "args": "${auto-detect-url}/swagger/index.html"
    }
}

相关问题