Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio 2017中的ExtensionManager null_C#_Visual Studio 2017_Vsix_Envdte - Fatal编程技术网

C# Visual Studio 2017中的ExtensionManager null

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

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

在新的Visual Studio 2017版本中,“
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);
}