如何限制VS Code扩展的VS Code引擎最低版本?

时间:2019-09-21 13:56:36

标签: visual-studio-code version-control vscode-extensions

我正在开发VS Code扩展。旧版本为1.0.0。我添加了一个新功能,该功能利用了VS Code的新功能Remote-development,该功能仅适用于高于1.36.1的VS Code引擎版本。我添加了扩展程序新功能,并将扩展程序升级到2.0.0

在安装扩展程序时,我想限制用户的VS Code引擎。如果用户想安装我的扩展v2.0.0,则必须具有高于1.36.1的VS Code引擎版本。

我在VS Code Official Docs: Extension Manifest之后的扩展程序package.json文件的engines字段中设置了最低VS Code版本限制。但是后来我发现VS Code引擎版本低于1.36.1的用户仍然可以搜索我的2.0.0扩展名并进行安装。 VS Code不会弹出任何建议来通知用户升级引擎。当然,该扩展程序无法正常工作。

// package.json
"engines": {
    "vscode": "^1.36.1"
  }

我错过了什么吗? 如何限制具有较低VS Code引擎版本的用户升级他们的VS Code引擎或安装旧的扩展版本?

现在具有较低VS Code引擎版本的用户只需安装我的新扩展版本,该扩展将无法使用。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

我自己弄清楚了原因:

  1. VS代码package.json的{​​{1}}字段确实有效。如果用户的引擎低于所需的最低引擎版本,则VS Code将为用户安装较低的版本扩展名。

  2. 在我的场景中,我有一个依赖项扩展,其引擎要求与主扩展不匹配。这是主扩展安装失败的根本原因。 当具有较低版本VS Code引擎的用户尝试安装我的扩展程序时,VS Code会检查依赖项扩展程序的引擎要求,而找不到具有适当依赖项版本的主扩展程序版本。在这种情况下,主扩展程序的安装将失败。

解决方案: 我必须找到一种方法来从市场上删除我以前的扩展版本,该市场的引擎要求不正确。

谢谢大家的关注。