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" 变为空 ?
在 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" 变为空 ?