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

如何检测VS Code扩展新版本首次加载并执行操作

实现VS Code扩展新版本首次加载触发操作的方案

目前VS Code官方没有直接提供检测新版本首次运行的内置属性(旧代码中的firstTimeUse已被移除),但可以通过插件上下文的存储API实现需求,以下是具体方案:

核心思路

利用ExtensionContext.globalState或workspaceState存储插件已运行的版本,每次激活插件时对比当前版本与存储版本:

  • 存储版本为空 → 插件首次安装运行
  • 存储版本≠当前版本 → 新版本首次运行
  • 执行目标操作后,更新存储的版本号

具体实现代码

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
    // 读取插件当前版本
    const packageJson = require(context.extensionPath + '/package.json');
    const currentVersion = packageJson.version;
    
    // 从全局状态获取已记录的版本
    const storedVersion = context.globalState.get<string>('extensionLastRunVersion');

    // 判断是否为新版本首次运行
    if (storedVersion !== currentVersion) {
        // 执行自定义操作,比如显示更新提示、初始化配置等
        vscode.window.showInformationMessage(`欢迎使用插件新版本 v${currentVersion}!`);
        
        // 更新全局状态中的版本号,避免重复触发
        context.globalState.update('extensionLastRunVersion', currentVersion);
    }

    // 其他插件业务逻辑...
}

关键细节说明

  • globalState:数据对当前用户的所有工作区生效,适合全局初始化操作
  • workspaceState:数据仅对当前工作区生效,适合工作区专属的初始化逻辑
  • 直接从package.json读取版本号,确保与发布的插件版本完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:55:55