You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS Code调试时如何让Chrome打开新窗口而非新标签?

解决VS Code调试时Chrome打开新窗口并使用干净Session的配置方法

你需要调整launch.json里的serverReadyAction配置,直接指定Chrome启动参数,确保每次调试都用全新的浏览器实例(带独立用户数据目录,彻底清空Session),而非默认打开已有窗口的标签页。

正确的launch.json配置修改

把原配置中的serverReadyAction替换为以下内容:

"serverReadyAction": {
    "action": "custom",
    "command": "${env:PROGRAMFILES(x86)}/Google/Chrome/Application/chrome.exe",
    "args": [
        "--new-window",
        "--user-data-dir=${tmpdir}/chrome-debug-${random}",
        "${match}"
    ],
    "pattern": "\\bNow listening on:\\s+(https?://\\S+)"
}

参数说明:

  • --new-window:强制Chrome启动新窗口
  • --user-data-dir=${tmpdir}/chrome-debug-${random}:每次创建临时用户数据目录,彻底隔离Session、缓存等数据,保证每次调试都是干净的运行环境
  • ${match}:自动捕获服务器启动后监听的实际地址(比如https://localhost:7058),无需硬编码端口
  • ${env:PROGRAMFILES(x86)}:通过环境变量获取Chrome安装路径,避免硬编码带来的兼容性问题

你之前方法无效的原因:

  • 在launch.json的args中添加--new-window:这个args是传递给你的.NET程序的参数,并非浏览器启动参数,因此不会生效
  • 单独创建startChrome任务:硬编码了固定端口,若服务器实际监听端口变动,会导致调试器无法关联;且原serverReadyAction的openExternally仍会触发默认打开标签页,出现两个浏览器窗口
  • 在launchSettings.json添加commandLineArgs:该参数是传递给dotnet run的启动参数,和浏览器启动逻辑无关,因此没有作用

内容的提问来源于stack exchange,提问作者Terry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 00:25:28