vsce publish 默认发布到稳定通道;测试版需用语义化预发布版本号(如0.2.0-beta.1),用户须手动在marketplace点击“pre-release versions”查看安装,且不可删除已发布版本。

vsce publish 会默认发布到稳定通道,不是测试版
直接运行 vsce publish 或 vsce publish --packagePath xxx.vsix,插件会进入 Marketplace 的「稳定(Stable)」通道,所有用户都能在 VS Code 客户端里搜索并安装。VS Code 官方不提供独立的“测试版市场”或公开的 beta 渠道,所谓“测试版发布”,本质是通过版本号 + 发布策略控制可见性与升级行为。
用 pre-release 版本号标记测试版(如 0.2.0-beta.1)
VS Code 市场本身不识别 beta、alpha 等关键词,但客户端会按语义化版本规则处理:带 prerelease 标签(如 -beta.1、-rc.2)的版本,默认不会自动升级到稳定版用户,也不会出现在普通搜索结果的顶部推荐位。这是目前最可靠、最轻量的“测试版”实践方式。
- 修改
package.json中的version字段为"0.2.0-beta.1" - 确保
vsce已登录且有对应 publisher 权限 - 执行
vsce package生成.vsix,再vsce publish - 发布后,用户需手动在 Marketplace 页面点击「Pre-release versions」才能看到该版本
发布后如何让测试用户安装指定测试版
普通用户在 VS Code 客户端里搜不到带 -beta 的版本——除非他们主动打开插件详情页,点击右下角「Pre-release versions」下拉菜单。所以真正有效的测试分发,依赖外部引导:
- 把 Marketplace 插件页链接 + 明确标注「点击 Pre-release versions 查看测试版」发给内测群
- 提供直接下载链接:
https://marketplace.visualstudio.com/items?itemName=your-publisher.your-extension&ssr=false#version-history,引导用户从版本历史中手动选装 - 不要依赖
updateChannel字段:它只对 Microsoft 官方插件(如 C/C++、Python)生效,第三方插件设了也无效
容易被忽略的关键细节
测试版不是“隔离环境”,它和稳定版共用同一个 publisher ID 和插件 ID,一旦发布就无法删除,只能靠后续更高版本覆盖。更麻烦的是:如果你先发布了 0.2.0-beta.1,再发布 0.2.0(无后缀),VS Code 客户端会认为后者是正式版,并自动升级所有已装测试版的用户——这个升级不可逆,也没法回退到 beta 版。
- 务必在
package.json里写清楚displayName和description,比如加“(Beta)”字样,避免用户误装 - 测试期间不要混用
vsce publish patch这类自动版本命令,它们生成的版本号不含 prerelease 标签,极易误推成正式版 - 图标、README、LICENSE 缺失会导致审核失败,哪怕只是测试版,Marketplace 后台仍会校验这些字段











