我有一个Visual Studio Code Extension,它依赖于PowerShell extension。这是在这里完成的:
https://github.com/gep13/chocolatey-vscode/blob/develop/package.json#L136
已经指出,这在用户使用PowerShell Preview extension时引起问题。由于它会导致错误,我认为这是由于未满足依赖关系。
我的扩展名并不真正在乎它是PowerShell还是PowerShell Preview扩展。
我的扩展清单中是否有一种方法可以指定它可以是另一个,也可以是另一个?还是最好检查一下依赖项以支持PowerShell扩展的建议?
答案 0 :(得分:2)
我认为没有办法在清单中强制执行“或/或”关系。
作为替代方案,您可以通过将ms-vscode.PowerShell
放在extensionPack
中来使其不是硬性要求。这样,安装扩展程序仍会同时安装它,但可以将其禁用甚至卸载。
然后您可以在扩展程序被激活时验证是否满足依赖关系:
if (vscode.extensions.getExtension("ms-vscode.PowerShell") === undefined &&
vscode.extensions.getExtension("ms-vscode.PowerShell-Preview") == undefined) {
vscode.window.showErrorMessage("PowerShell or PowerShell Preview extension required");
}