

微軟某個 VSCode 語言服務擴充套件中,位於
nativeStrings.json
檔案第 485 行的一行程式碼,打破了它與 Cursor 的相容性。該條款規定:“C/C++ 擴充套件僅可與 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及微軟後續推出的產品和服務一起使用,以開發和測試您的應用程式。”這些限制讓開發者更傾向於使用微軟的官方發行版,而非其他版本。

"license_terms": "The C/C++ extension may be used only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications."
隨後,就有開發者抱怨道,微軟有一些閉源擴充套件程式(遠端訪問、Pylance、C/C++、C#),這些擴充套件程式的最新版本已無法在 Cursor 或其他非微軟編輯器中使用。其中,Cursor 1.17.62 版本可以正常使用,但 1.18.21 及更高版本無法正常工作。

Cursor 的文件提供瞭如何從微軟商店安裝擴充套件的說明。該功能依賴於將擴充套件下載為
.vsix
檔案;然而,該檔案的下載連結現已不在擴充套件市場的首頁中顯示。在很多情況下,如果該擴充套件是開源的,開發者仍可從其程式碼倉庫(如 GitHub)中下載。另外,還有開發者稱 C# Dev Kit 也遇到了一樣的限制。

嘗試使用 Microsoft 的 Dev Kit 擴充套件時 Cursor 報告的錯誤
對此,Cursor 社群中的開發者 Alexander Schroeder 表示,“我們已經發布了一個即時修復程式,並將很快釋出一個長期解決方案。”

另外,也有開發者表示,最新版本的擴充套件程式阻止了它的工作,但其透過降級並停用自動更新的方式解決了。“在擴充套件程式頁面,‘解除安裝’旁邊的下拉選單中有一個“安裝特定版本”。安裝版本 1.23.6”。

微軟釋出的 Visual Studio Code 徹底改變了開發者使用 IDE 的方式,開發者可以用一個統一的工具來編寫幾乎所有語言和技術棧的程式碼。
微軟不僅提供了 Visual Studio Code,還開發了許多擴充套件外掛,比如 Python 偵錯程式、C/C++ 語言服務、Jupyter、Pylance、Python 語言服務、Azure 工具、Data Wrangler、Jupyter 快捷鍵對映,甚至還有 JavaScript 和 TypeScript 的語言服務。這些還只是微軟所開發的眾多擴充套件中的一部分而已。此外,微軟還擁有 GitHub 和 npm,幾乎可以說是掌控了整個軟體開發工具生態。
這本來挺不錯的,然而,微軟某些團隊最近情況有點不太妙——四位麻省理工學院(MIT)的本科生利用 VSCode 的開源模式,將其分叉(fork)並打造了一個競爭產品 Cursor。當 VSCode 詢問是否希望將 AI 建議合併進你正在開發的程式碼時,Cursor 卻是反過來,詢問 AI 是否希望讓人類插手。
Cursor 本身並不是開源的,這一做法雖然存在爭議,但在 VSCode 所採用的 MIT 許可證下是被允許的,所以我們無法檢視其內部實現,也不知道它具體做了什麼。
不過,Cursor 在去年年中融資了大約 6000 萬美元,而在差不多的時間,他們已經擁有約 4 萬名使用者。Cursor 提供了一個帶有限制的免費政策,還有每月 20 美元和 40 美元(按使用者計費)的付費計劃。
微軟的 C/C++ 語言服務擴充套件突然停止支援 Cursor,讓所有人都大吃一驚。然而,這也不是新鮮事。有網友表示,微軟自己的語言擴充套件一直宣告不能在 Visual Studio Code 之外使用它(並且 Code fork 不算數),這絕對不是一個新問題,只是他們現在決定強制執行對 C++ 擴充套件的限制。2018 年時,微軟明確表示不允許在 Code forks 上使用 C# 擴充套件。
微軟 vscode-cpp 工具 192 行長的許可證檔案顯示,它禁止在 VSCode 和微軟工具以外的環境中使用。

前端工程師 Tom Smykowski 發現,新的限制規則是在 4 月 1 日被新增進去的,還附有某位評論者的一句評論:
“Embrace, extend, extinguish(擁抱、擴充套件、消滅)。”
這個短語不僅僅是對這次變更的嘲諷,實際上它來源於微軟本身:
“擁抱、擴充套件、消滅”(EEE),也被稱為“擁抱、擴充套件、根除”,是美國司法部曾經發現的微軟內部使用的一個策略短語,用來描述其進入某些採用廣泛開放標準的產品領域的行為方式:先“擁抱”標準,隨後在其基礎上加入專有功能進行“擴充套件”,最終透過這些差異將競爭對手“消滅”。
這個策略曾在上世紀微軟多次反壟斷案件中被提及,如今再次被人提起,可見這一舉動在開發者社群中引起了不小的反感。
具體來看,這個策略的三個階段如下:
-
擁抱(Embrace):開發與開放標準高度相容的軟體。
-
擴充套件(Extend):新增開放標準未支援的新功能,從而製造互操作性問題。
-
消滅(Extinguish):當這些擴充套件因市場份額優勢而成為事實標準後,邊緣化那些無法支援這些擴充套件的競爭對手。
當然,微軟從未公開承認這就是他們的戰略。畢竟 VSCode 是在 MIT 許可證下開源的,.NET 也同樣是開源的,所以並不太像微軟還會執行“EEE 戰略”。
不過,在這次事件中,微軟確實利用了一個存在多年的許可證條款,並在此基礎上對擴充套件加上了限制性封鎖。過去沒這麼做,大概是因為沒人把 VSCode 拿去 fork 並試圖做成競品。
那麼,到底有多少擴充套件受到這種限制的影響?
Smykowski 調查後表示,還沒有發現其他擴充套件也存在類似封鎖行為。不過 Smykowski 還沒檢查完全部內容。全網搜尋“extension may be used only with”這樣的短語,在微軟開原始碼庫裡也沒找到更多類似描述。
然而問題是,微軟可以隨時新增這樣的限制。事實上,只要你使用的擴充套件中包含以下這段話:
“您可以在 Microsoft Visual Studio、Visual Studio for Mac、Visual Studio Code、Azure DevOps、Team Foundation Server 以及其後繼產品和服務中安裝和使用任意數量的副本,僅用於開發和測試您的應用程式。”
那它理論上就可能在未來被微軟加上訪問限制。
顯然,這項限制是 強制規定擴充套件只能與微軟指定的工具一起使用,不能用於任何 fork(衍生版本)。
Smykowski 在查詢“only with Microsoft”這種措辭時,並沒有找到有力證據表明其他語言服務擴充套件的許可證中也包含類似的限制條款。
所以 Smykowski 的結論是,目前其他語言服務擴充套件中並沒有類似的封鎖行為,而且並非所有擴充套件都使用了這種帶有限制的許可證。
Smykowski 建議,當開發者決定在 VSCode 的 fork 上使用某個擴充套件之前,必須先檢查它的許可證, 或者選擇使用其他真正開源、許可證開放的擴充套件。“其實,微軟的 VSCode 擴充套件商店並不是唯一的來源 —— 比如你可以從 Open VSX 獲取擴充套件,它由 Eclipse 基金會託管。”
“鎖定效應”促使了 Open VSX 市場的誕生,其初衷是防止官方 VS Code 專屬市場“嚴重限制那些採用開源開發工具的組織的能力”。
儘管如此,Open VSX 市場中的擴充套件數量和使用率仍遠低於微軟的官方市場。不過,Cursor 仍然在其 IDE 中提供對 VS Code 市場擴充套件的訪問,包括微軟的 C/C++ 擴充套件和 C# DevKit,同時還提供一個設定選項,可以從已安裝的 VS Code 中匯入擴充套件。
看起來微軟現在正在更嚴格地執行其使用條款。DevClass 嘗試在 Cursor 中安裝微軟的 C/C++ 擴充套件,雖然安裝成功,但在使用如“查詢所有引用”等功能時卻無法正常工作,最終彈出提示視窗,提醒使用者該擴充套件存在使用限制。
這種情況令人困惑,因為 Cursor 仍會在識別到合適的專案時,推薦開發者安裝微軟的 C++ 擴充套件。開發者可能會考慮使用替代方案,例如 clangd 擴充套件,儘管它的安裝量僅為 170 萬次,而微軟的擴充套件安裝量已達 8100 萬次。
不過問題在於:雖然微軟免費提供了擴充套件和 VSCode,但這並不代表開發者可以隨意使用它們做任何事情。他們完全可以隨時更改許可協議,限制你的使用方式,甚至要求為使用付費。“這就意味著,未來充滿不確定性,而當一家公司擁有某個工具或平臺的控制權時,它也就控制了規則。”Smykowski 評價道。
對於微軟的這一變化,有開發者猜測可能是由於 VS Code 穩定版中引入了“Agent Mode”這一 AI 功能,使 Cursor 成為了 VS Code 更直接的競爭對手。

VS Code Stable 在 3 月的版本中推出了代理模式(Agent mode),該模式現已全面支援 MCP。
與傳統的聊天或多檔案編輯功能不同,代理模式的核心在於:它不僅僅回答問題,而是具備將開發者的想法轉化為程式碼的實際操作能力:自動識別或生成所需檔案,完成所有必要的子任務,確保實現開發者的主要目標;建議終端命令或工具呼叫,並請求開發者執行;具備執行時錯誤分析和自我修復能力等。
代理模式由 Claude 3.5 和 3.7 Sonnet、Google Gemini 2.0 Flash 以及 OpenAI GPT-4o 提供支援。目前,代理模式在基於 Claude 3.7 Sonnet 的 SWE-bench Verified 測試中的透過率為 56.0%。
微軟一直強調,儘管 Code-OSS 的程式碼是基於 MIT 許可協議的開源專案,但 VS Code 是微軟基於 Code-OSS 倉庫定製的發行版本,並採用了傳統的微軟產品許可協議釋出。
有評論指出,在合規性方面,Cursor 可能並未直接連結至 VS Code 擴充套件市場,而是透過其自有服務釋出已上線擴充套件的連結。目前出現的問題似乎僅限於微軟官方的擴充套件,而非第三方擴充套件。
參考連結:
https://github.com/microsoft/vscode-cpptools/blob/main/RuntimeLicenses/cpptools-LICENSE.txt
https://github.com/getcursor/cursor/issues/2976
https://tomaszs2.medium.com/microsoft-quietly-blocked-cursor-from-using-its-vscode-extension-heres-the-line-of-code-that-8d664caf0de5
https://devclass.com/2025/04/08/vs-code-extension-marketplace-wars-cursor-users-hit-roadblocks/
https://github.blog/news-insights/product-news/github-copilot-agent-mode-activated/
宣告:本文為 InfoQ 整理,不代表平臺觀點,未經許可禁止轉載。
AICon 2025 強勢來襲,5 月上海站、6 月北京站,雙城聯動,全覽 AI 技術前沿和行業落地。大會聚焦技術與應用深度融合,匯聚 AI Agent、多模態、場景應用、大模型架構創新、智慧資料基建、AI 產品設計和出海策略等話題。即刻掃碼購票,一同探索 AI 應用邊界!
