Visual Studio 2017 年的 ExtensionManager 为空

ExtensionManager null in Visual Studio 2017

在 Visual Studio 的早期版本中,我可以使用以下代码来检索有关某个已安装扩展程序 (vsix) 的信息:

IVsExtensionManager manager = ServiceProvider.GlobalProvider.GetService(typeof(SVsExtensionManager)) as IVsExtensionManager;
if (manager != null)
{
    VsExtension extension = new VsExtension();
    IInstalledExtension info = manager.GetInstalledExtension(cExtensionProductId);
}

在新的 Visual Studio 2017 版本中,“manager”变量始终为空。 Microsoft 更改了检索信息的方式(他们不再使用系统注册表),但我找不到其他检索信息的方式。

你知道我在哪里可以找到更多信息and/or提供新实现的示例吗?

提前致谢!

请检查您是否在 VS 2017 中使用了对扩展管理器的 VS 2017 特定引用。它应该是 Microsoft.VisualStudio.ExtensionManager.dll 并且 Microsoft.VisualStudio.ExtensionEngine.dll.

有关工作示例,请参阅 https://vlasovstudio.com/visual-commander/commands.html#ExtensionsList

ServiceProvider.GlobalProvider.GetService(typeof(SVsExtensionManager)) returns 是否为空?或者 "as IVsExtensionManager" 变为空 ?