2 votes

Comment utiliser le fournisseur IVsPackageSourceProvider

Mode d'emploi IVsPackageSourceProvider puis-je obtenir une liste des sources NuGet, comme un https://www.nuget.org/api/v2/ ? J'essaie d'utiliser une telle structure :

   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)
        {
        }
    }

Mais Try soulève un Exception avec le texte :

Impossible de convertir la valeur exportée sous-jacente de type 'NuGet.VisualStudio.VsPackageSourceProvider (ContractName="NuGet.VisualStudio.IVsPackageSourceProvider")' vers le type NuGet.VisualStudio.IVsPackageSourceProvider'.

Veuillez me dire comment utiliser ce fournisseur.

Désolé pour le mauvais anglais

0voto

Zhanglong Wu - MSFT Points 1434

Vous pouvez obtenir la liste des paquets NuGet via IVsPackageInstallerServices, comme ceci :

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)
            {
            }

Edit :

enter image description here

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X