我正在开发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引擎版本的用户只需安装我的新扩展版本,该扩展将无法使用。任何帮助表示赞赏!
答案 0 :(得分:0)
我自己弄清楚了原因:
VS代码package.json
的{{1}}字段确实有效。如果用户的引擎低于所需的最低引擎版本,则VS Code将为用户安装较低的版本扩展名。
在我的场景中,我有一个依赖项扩展,其引擎要求与主扩展不匹配。这是主扩展安装失败的根本原因。 当具有较低版本VS Code引擎的用户尝试安装我的扩展程序时,VS Code会检查依赖项扩展程序的引擎要求,而找不到具有适当依赖项版本的主扩展程序版本。在这种情况下,主扩展程序的安装将失败。
解决方案: 我必须找到一种方法来从市场上删除我以前的扩展版本,该市场的引擎要求不正确。
谢谢大家的关注。