Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.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
Visual studio 如何以编程方式安装VisualStudio扩展?_Visual Studio_Envdte - Fatal编程技术网

Visual studio 如何以编程方式安装VisualStudio扩展?

Visual studio 如何以编程方式安装VisualStudio扩展?,visual-studio,envdte,Visual Studio,Envdte,如何获取已安装VisualStudio扩展的列表?通过DTE?只要这些名字就够了。这有帮助吗: System.IServiceProvider serviceProvider=打包为System.IServiceProvider; Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager em= (Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager)servicePr

如何获取已安装VisualStudio扩展的列表?通过
DTE
?只要这些名字就够了。

这有帮助吗:

System.IServiceProvider serviceProvider=打包为System.IServiceProvider;
Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager em=
(Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager)serviceProvider.GetService(
typeof(Microsoft.VisualStudio.ExtensionManager.SVsExtensionManager));
字符串结果=”;
foreach(em.GetInstalledExtensions()中的Microsoft.VisualStudio.ExtensionManager.IIInstalledExtension i)
{
Microsoft.VisualStudio.ExtensionManager.IExtensionHeader h=i.头;
if(!h.SystemComponent)
结果+=h.Name+“(由“+h.Author+”)v“+h.Version+”+h.MoreInfoUrl+System.Environment.NewLine;
}

复制自#20。

另一种可能性是,如果您不想要DTE,因为您不是从Visual Studio中运行,或者担心性能,您可以从文件系统/注册表中查询扩展名:

用于用户扩展 %LocalAppData%\Microsoft\VisualStudio*.vsix

用于一般扩展 \Common7\IDE\Extensions*.vsix

如果希望100%正确,可以在中查找路径 \Common7\IDE\devenv.pkgdef

注意:PkgDefSearchPath中可能有其他路径

要检查是否启用了用户扩展,您必须查询注册表: HKEY_当前_用户\Software\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtraction

还有一些适用的其他规则,您可以在Microsoft的本博客中找到:

谢谢。不错的选择。我的问题不够详细,但我还需要知道是否启用了扩展。。。我认为至少在Visual Studio 2017上,
\Common7\IDE\devenv.pkgdef
应该是
\Common7\IDE\master.pkgdef
。这还将表明您需要
CommonExtensions
文件夹,其中包含VS 2017中的大多数Microsoft通用扩展(如语言服务)。不确定当它不使用DTE时,这怎么可能是答案。为什么它必须?>以某种方式通过DTE?这是一个问题,而不是一个请求;-)我想你误解了:-)