c# - 如何使用 IVsPackageSourceProvider 提供程序

标签 c# .net visual-studio-2012 nuget visual-studio-extensions

如何使用 IVsPackageSourceProvider 我可以获得 NuGet 源列表,例如 https://www.nuget.org/api/v2/?我尝试使用这样的结构:

   using (Microsoft.VisualStudio.Shell.ServiceProvider provider = new Microsoft.VisualStudio.Shell.ServiceProvider((Microsoft.VisualStudio.OLE.Interop.IServiceProvider)base._dteObject))
    {

        IComponentModel service = (IComponentModel)provider.GetService(typeof(SComponentModel));
        try
        {
            var sourceProvider = service.GetService<IVsPackageSourceProvider>();
        }
        catch(Exception ex)
        {
        }
    }

但是 Try block 引发了一个 Exception 文本:

Cannot cast the underlying exported value of type 'NuGet.VisualStudio.VsPackageSourceProvider (ContractName="NuGet.VisualStudio.IVsPackageSourceProvider")' to type 'NuGet.VisualStudio.IVsPackageSourceProvider'

请告诉我如何使用此提供程序。

对不起英语不好

最佳答案

您可以通过 IVsPackageInstallerServices 获取 NuGet 包列表,如下所示:

try
            {
                //Using the IComponentModel service
                var componentModel = (IComponentModel)this.ServiceProvider.GetService(typeof(SComponentModel));

                //var sourceProvider = componentModel.GetService<IVsPackageSourceProvider>();

                IVsPackageInstallerServices installerServices =
                    componentModel.GetService<IVsPackageInstallerServices>();


                var installedPackages = installerServices.GetInstalledPackages();



            }
            catch (Exception ex)
            {
            }

编辑:

enter image description here

代码: https://1drv.ms/u/s!AlvaNEnglADDe3a-mSTWubSix-w

关于c# - 如何使用 IVsPackageSourceProvider 提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41225508/

相关文章:

c# - 完成 POST 是否需要 HttpWebRequest.GetResponse?

visual-studio - Visual Studio - 找不到 "export template"选项

c# - 使用 block 分解 C# 以启用函数式编程的模式

.net - 无法调试 Windows 服务 -"attach to process"

c# - 在监 window 口中评估动态属性

c# - 引用的程序集 'GenCode128.dll' 不是有效的程序集

visual-studio-2012 - 如果在 VS 2012 中注释,一个键盘快捷键 (Ctrl +/) 用于注释或取消注释

c# - 在 Azure 函数中序列化

c# - WPF MVVM : ItemTemplate for binding a list of ICommands to a ListBox

c# - 使用 SecureString 进行配置真的安全吗?