【问题标题】:How to use IVsPackageSourceProvider provider如何使用 IVsPackageSourceProvider 提供程序
【发布时间】:2016-12-19 15:05:35
【问题描述】:

如何使用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 块会引发Exception 并带有文本:

无法转换类型的基础导出值 'NuGet.VisualStudio.VsPackageSourceProvider (ContractName="NuGet.VisualStudio.IVsPackageSourceProvider")' 键入 'NuGet.VisualStudio.IVsPackageSourceProvider'

请告诉我如何使用这个提供者。

抱歉英语不好

【问题讨论】:

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


    【解决方案1】:

    可以通过 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)
                {
                }
    

    编辑:

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

    【讨论】:

    • 感谢您的回答!但是,我想从 Visual Studio 中获取 NuGet 的来源,而不是包。抱歉问错了问题。
    • 代码看起来没问题,我用visual studio 2015创建了演示,.Net framework 4.6,它可以工作,
    • 我明白了。它只是在 Visual Studio 2013 中不起作用。感谢您的帮助!
    猜你喜欢
    • 2020-02-07
    • 1970-01-01
    • 2019-03-29
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 2017-11-28
    相关资源
    最近更新 更多