前言¶
在 DeepSeek Harness(DSH)裏接 MCP 工具,常見訴求是讓助手不僅能改代碼,還能加載解決方案、編譯、下斷點、看調用棧。Visual Studio 生態裏已有不少「進程內」MCP 方案:工具調用最終回到 VS 的 UI 線程,模態對話框一彈出,調用就會阻塞,RDP 斷開、鎖屏或 VS 重啓也會拖垮連接。
dsh2vs 是維護者 aaalzk 的獨立第三方項目(與 DeepSeek AI、Microsoft、MCP 官方無隸屬關係)。它把「加載工程、編譯、調試」拆成常駐 HTTP 服務加 DSH 配置包,構建走 MSBuild CLI,調試走 cdb 子進程,不裝 VSIX,也不要求 Visual Studio 處於打開狀態。下面介紹它是什麼、能做什麼,以及先起橋、再接 DSH 的安裝順序。
這是什麼¶
dsh2vs 由兩個獨立部分組成,只裝一半會連上一個不存在的地址:
| 部分 | 作用 |
|---|---|
| 橋 | .NET 程序,調用 MSBuild 編譯、啓動 cdb 調試、處理崩潰 dump 與報告 |
| DSH 插件 | 純配置包,告訴 DSH 橋在 127.0.0.1:8790 |
AI 助手通過 MCP 調用橋暴露的接口,即可在無人值守或遠程機器上跑 C++ 項目的「改代碼 → 編譯 → 調試」循環。它不是 VS 插件,也不替代 VS 圖形界面;需要看 IDE 時仍可自行打開 Visual Studio。
npm 包名 dsh2vs,當前 package.json 版本爲 0.1.1,許可證 MIT。社區目錄頁:https://www.skillhub.cn/plugins/aaalzk/dsh2vs;源碼與文檔:https://github.com/aaalzk/dsh2vs。
核心功能¶
資料中明確的能力包括:
- 工程感知:從
.sln與配置推導可執行文件路徑等,而不是隻提供裸調試器、由調用方自行拼路徑。 - 編譯:通過 MSBuild.exe 構建 Visual Studio C++ 工程。
- 調試:通過 cdb.exe 子進程斷點調試、查看調用棧與變量。
- 診斷層:例如啓動失敗可給出
0xC0000135與缺失 DLL 信息;崩潰時可自動 dump 與報告。 - MCP 工具面:重啓 DSH 會話後,會出現
mcp__vs__*等 40 個以上工具(完整列表見倉庫docs/tools.md)。
與僅覆蓋 Windbg 或僅覆蓋 MSBuild 的同類 MCP 相比,項目自述的定位是:從解決方案出發的無人值守閉環,併疊加一層面向 agent 的診斷信息。若只需要成熟的 Windbg MCP,README 指向 mcp-windbg 作爲更專深的調試方案。
安裝與啓用¶
順序必須是:先確認橋存活,再安裝 DSH 插件。只裝插件、橋未啓動時,DSH 會因 failOnStartupError: true 明確報錯,不會靜默丟失工具。
第 1 步:啓動橋¶
綠色版(推薦:無需 .NET SDK、無需編譯)
從 Releases 下載 dsh2vs-win-x64.zip,解壓後運行(將工作區路徑換成你的 C++ 工程根目錄):
.\Dsh2Vs.Server.exe --Dsh2Vs:WorkspaceRoot=D:\Projects\你的C++工程
源碼構建(需要改代碼時)
git clone https://github.com/aaalzk/dsh2vs.git
cd dsh2vs; dotnet build
.\scripts\start.ps1 -Workspace D:\Projects\你的C++工程
MCPB 單文件包(Claude Desktop 等支持 MCPB 的客戶端)
Releases 中提供 dsh2vs-0.1.0.mcpb(自帶 .NET 9 運行時)。可直接用 Claude Desktop 打開,或解壓後以 stdio 模式啓動:
.\Dsh2Vs.Server.exe --stdio
stdio 模式下 stdout 僅用於 MCP 協議,日誌寫入 stderr。
確認橋正常:
(Invoke-WebRequest http://127.0.0.1:8790/healthz -UseBasicParsing).Content
期望類似:
{"status":"ok","name":"dsh2vs","version":"0.1.0","msbuild":"...MSBuild.exe"}
若 status 爲 degraded,表示未找到 MSBuild,需參閱倉庫 docs/faq.md。
第 2 步:接入 DSH¶
dsh plugin --profile web add dsh2vs
npm 不可用時,可使用資料給出的源碼安裝方式:
dsh plugin --profile web add github:aaalzk/dsh2vs
重啓 DSH 會話(MCP 連接在會話啓動時加載),上述工具纔會出現在助手側。
典型用法(架構層面)¶
數據流可概括爲:
DSH ──MCP──▶ 插件(YAML:指向 127.0.0.1:8790)
│
▼ HTTP
橋(Dsh2Vs.Server)
├─▶ MSBuild.exe 編譯
├─▶ cdb.exe 調試
└─▶ 崩潰 dump + 報告
面向 AI agent 的完整操作流程見倉庫 skills/dsh2vs/SKILL.md;配置項、多工作區與常駐運行見 docs/configuration.md。
適用場景與注意¶
更適合:讓 AI 在無人值守或遠程 Windows 機器上處理 C++ 項目;需要「編譯報錯 → 改代碼 → 再編譯」的自動循環;希望避免 VS 彈「項目已過期,是否重新生成」等模態框卡住自動化。
不太適合:只想在 VS 裏與 AI 聊天(README 建議考慮 Claude Code、cv4vs 等進程內方案);強依賴 VS 圖形調試器;調試託管 .NET。
安全與權限:DSH 插件以當前 dsh 進程權限運行 MCP 與本地 HTTP 調用。安裝前應閱讀倉庫源碼與 MIT 許可證,確認橋只監聽本機、工作區路徑範圍符合你的預期。
環境:橋側爲 Windows + Visual Studio 工具鏈(MSBuild、cdb);DSH 插件包要求 Node >=18(見 package.json engines)。
結尾¶
dsh2vs 用「HTTP 橋 + DSH 配置包」把 Visual Studio C++ 工程的加載、編譯與 cdb 調試暴露給 MCP 客戶端,刻意繞開 VS 進程內 UI 自動化帶來的彈窗與斷連問題。部署時牢記兩步: Releases 或構建啓動 Dsh2Vs.Server,healthz 返回 ok 後再執行 dsh plugin --profile web add dsh2vs 並重啓會話。