如何以编程方式安装 VisualStudio 扩展?
How to get installed VisualStudio extensions programmatically?
如何获取已安装的 VisualStudio 扩展列表?以某种方式通过 DTE
?只要名字就够公平了。
这有帮助吗:
System.IServiceProvider serviceProvider = package as System.IServiceProvider;
Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager em =
(Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager)serviceProvider.GetService(
typeof(Microsoft.VisualStudio.ExtensionManager.SVsExtensionManager));
string result = "";
foreach(Microsoft.VisualStudio.ExtensionManager.IInstalledExtension i in em.GetInstalledExtensions())
{
Microsoft.VisualStudio.ExtensionManager.IExtensionHeader h = i.Header;
if (!h.SystemComponent)
result += h.Name + " (by " + h.Author + ") v" + h.Version + " " + h.MoreInfoUrl + System.Environment.NewLine;
}
复制自https://vlasovstudio.com/visual-commander/commands.html #20.
另一种可能性,如果您不想要 DTE,因为您不是 Visual Studio 中的 运行 或者担心性能,您可以从文件系统/注册表查询扩展:
对于用户扩展
%LocalAppData%\Microsoft\VisualStudio*.vsix
对于一般扩展
\Common7\IDE\Extensions*.vsix
如果你想 100% 正确,你可以在
\Common7\IDE\devenv.pkgdef
注意: PkgDefSearchPath 中可以有其他路径。
要检查是否启用了用户扩展,您必须查询注册表:
HKEY_CURRENT_USER\软件\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions
还有一些其他规则适用,您可以在 Microsoft 的这篇博客中找到这些规则:
http://blogs.msdn.com/b/visualstudio/archive/2010/02/19/how-vsix-extensions-are-discovered-and-loaded-in-vs-2010.aspx
如何获取已安装的 VisualStudio 扩展列表?以某种方式通过 DTE
?只要名字就够公平了。
这有帮助吗:
System.IServiceProvider serviceProvider = package as System.IServiceProvider;
Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager em =
(Microsoft.VisualStudio.ExtensionManager.IVsExtensionManager)serviceProvider.GetService(
typeof(Microsoft.VisualStudio.ExtensionManager.SVsExtensionManager));
string result = "";
foreach(Microsoft.VisualStudio.ExtensionManager.IInstalledExtension i in em.GetInstalledExtensions())
{
Microsoft.VisualStudio.ExtensionManager.IExtensionHeader h = i.Header;
if (!h.SystemComponent)
result += h.Name + " (by " + h.Author + ") v" + h.Version + " " + h.MoreInfoUrl + System.Environment.NewLine;
}
复制自https://vlasovstudio.com/visual-commander/commands.html #20.
另一种可能性,如果您不想要 DTE,因为您不是 Visual Studio 中的 运行 或者担心性能,您可以从文件系统/注册表查询扩展:
对于用户扩展 %LocalAppData%\Microsoft\VisualStudio*.vsix
对于一般扩展 \Common7\IDE\Extensions*.vsix
如果你想 100% 正确,你可以在 \Common7\IDE\devenv.pkgdef
注意: PkgDefSearchPath 中可以有其他路径。
要检查是否启用了用户扩展,您必须查询注册表: HKEY_CURRENT_USER\软件\Microsoft\VisualStudio\10.0\ExtensionManager\EnabledExtensions
还有一些其他规则适用,您可以在 Microsoft 的这篇博客中找到这些规则: http://blogs.msdn.com/b/visualstudio/archive/2010/02/19/how-vsix-extensions-are-discovered-and-loaded-in-vs-2010.aspx