vs code marketplace 账号必须用已验证的 microsoft 账户登录,不支持邮箱独立注册或 github/google 直登;创建发布者名称不可更改且需与 package.json 中 publisher 字段一致;personal access token 必须勾选 marketplace → publish 权限;package.json 必须含有效 publisher、engines.vscode 和 spdx 格式 license 字段,根目录须有 license 文件。

VS Code Marketplace 账号必须用 Microsoft 账户登录
VS Code 市场不接受邮箱独立注册,也不支持 GitHub 或 Google 账号直登。你必须有一个已验证的 Microsoft 账户(比如 Outlook.com、Hotmail 或绑定过 Windows 系统的账号)。如果用公司邮箱注册过 Azure AD,也属于 Microsoft 账户体系,可直接使用。
常见错误现象:Failed to sign in: Invalid credentials 或页面卡在“正在重定向”,大概率是用了非 Microsoft 账户,或账户未完成两步验证(部分新注册账户需先登录 outlook.com 完成手机验证)。
- 打开
https://marketplace.visualstudio.com/,点击右上角 Sign in - 输入 Microsoft 账户邮箱,按提示完成登录(若首次访问,系统会引导你确认个人信息和隐私条款)
- 登录成功后,鼠标悬停在头像上,点击
Publisher management进入发布者管理页
创建 Publisher 时名称不可更改且影响 package.json
发布者名称(Publisher Name)是你插件在 package.json 中 publisher 字段的值,也是插件 URL 的一部分(如 https://marketplace.visualstudio.com/items?itemName=<strong>your-publisher</strong>.my-extension)。一旦创建,无法修改,也不能被他人复用。
容易踩的坑:用昵称、缩写或带下划线(如 my_dev)——这些在 Marketplace 上允许,但 VSCE 工具在校验时可能报 Invalid publisher name;推荐只用小写字母 + 数字 + 连字符,长度控制在 3–25 字符内。
- 在 Publisher management 页面点击
Create new publisher - 填写名称(例如
yan),全小写,无空格,避免特殊符号 - 确认后,该名称将绑定你的 Microsoft 账户,后续所有插件都必须用这个
publisher
Personal Access Token 必须勾选 Marketplace (Publish) 权限
VSCE 工具(vsce login)认证依赖 Azure DevOps 生成的 PAT,不是 GitHub Token,也不是 VS Code 的 session token。权限选错会导致 vsce publish 报 401 Unauthorized 或 Access denied: 'Marketplace' scope is required。
正确路径是:登录 https://dev.azure.com/ → 右上角头像 → Personal access tokens → + New Token → 名称任意(如 vsce-publish-2026),范围(Scopes)务必勾选 Marketplace 下的 Publish(不是 Read 或 Manage)。
- 过期时间建议选
Custom defined并设为 1 年以上,避免频繁重置 - 生成后页面只显示一次 Token 字符串,务必立刻复制保存(粘贴到密码管理器或本地加密文件)
- 执行
vsce login yan(yan替换为你自己的 publisher 名)后,直接粘贴该 Token
第一次 publish 前 package.json 和 LICENSE 是硬性门槛
VSCE 不会告诉你缺了什么,而是直接失败并抛出模糊错误,比如 Failed to publish 或 Missing required field: license。实际上,Marketplace 强制要求三项:有效的 publisher、存在 license 字段(或根目录有 LICENSE 文件)、engines.vscode 版本声明不能为空。
最常被忽略的是 license 字段写法:必须是 SPDX ID(如 "license": "MIT"),不能写成 "license": "See LICENSE" 或留空字符串。
-
package.json中确保包含:"publisher": "yan"、"engines": {"vscode": "^1.85.0"}、"license": "MIT" - 根目录添加
LICENSE文件(内容为对应协议全文,MIT 协议可从https://opensource.org/license/mit/复制) - 运行
vsce validate可提前检查基础字段合法性(不联网,纯本地校验)
package.json 的耦合性——改一个就得全量重发,连带用户安装链接都变;PAT 权限描述模糊,“Marketplace” 下有多个子项,只勾 Publish 才行;还有人把 LICENSE 当作文档写进 README,结果 VSCE 根本不认。











