C# Visual Studio 2017中的ExtensionManager null
在Visual Studio的早期版本中,我可以使用以下代码检索有关某个已安装扩展(vsix)的信息: 在新的Visual Studio 2017版本中,“C# Visual Studio 2017中的ExtensionManager null,c#,visual-studio-2017,vsix,envdte,C#,Visual Studio 2017,Vsix,Envdte,在Visual Studio的早期版本中,我可以使用以下代码检索有关某个已安装扩展(vsix)的信息: 在新的Visual Studio 2017版本中,“manager”变量始终为空。微软改变了检索信息的方式(他们不再使用系统注册表),但我找不到其他检索信息的方式 您知道我在哪里可以找到更多信息和/或提供新实现的示例吗 提前谢谢你 请检查VS 2017是否使用VS 2017特定的扩展经理参考资料。它应该是Microsoft.VisualStudio.ExtensionManager.dll M
manager
”变量始终为空。微软改变了检索信息的方式(他们不再使用系统注册表),但我找不到其他检索信息的方式
您知道我在哪里可以找到更多信息和/或提供新实现的示例吗
提前谢谢你 请检查VS 2017是否使用VS 2017特定的扩展经理参考资料。它应该是Microsoft.VisualStudio.ExtensionManager.dll
Microsoft.VisualStudio.ExtensionEngine.dll
有关工作示例,请参见。ServiceProvider.GlobalProvider.GetService(typeof(SVsExtensionManager))是否返回null?或者“as IVsExtensionManager”变为null?使用示例代码会导致“System.InvalidCastException:“无法将类型为“Microsoft.VisualStudio.ExtensionManager.ExtensionManager”的对象强制转换为类型为“Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager”。“添加这两个DLL,ExtensionManager.dll和ExtensionEngine.dll导致以下错误:CS0433“Microsoft.VisualStudio.ExtensionEngine,Version=15.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”和“Microsoft.VisualStudio.ExtensionManager,Version=11.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a'Microsoft.VisualStudio.ExtensionManager的版本也应为15.0.0.0。感谢您提供的信息!我终于找到了Microsoft.VisualStudio.ExtensionManager.dll v.15.0.0.0的位置。Microsoft.VisualStudio.ExtensionManager.dll的位置:C:\Program Files(x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\as IVsExtensionManager'返回空值。
IVsExtensionManager manager = ServiceProvider.GlobalProvider.GetService(typeof(SVsExtensionManager)) as IVsExtensionManager;
if (manager != null)
{
VsExtension extension = new VsExtension();
IInstalledExtension info = manager.GetInstalledExtension(cExtensionProductId);
}