protected override async Task InitializeAsync( CancellationToken cancellationToken, IProgress <ServiceProgressData> progress) { _handler = await SolutionRestoreBuildHandler.InitializeAsync(this); await SolutionRestoreCommand.InitializeAsync(this); // Set up brokered services - Do not reference NuGet.VisualStudio.Internals.Contract explicitly to avoid an unnecessary assembly load IBrokeredServiceContainer brokeredServiceContainer = await this.GetServiceAsync <SVsBrokeredServiceContainer, IBrokeredServiceContainer>(); brokeredServiceContainer.Proffer(BrokeredServicesUtility.NuGetSolutionService, factory: BrokeredServicesUtility.GetNuGetSolutionServicesFactory()); await base.InitializeAsync(cancellationToken, progress); }
internal static async ValueTask ProfferServicesAsync(IAsyncServiceProvider serviceProvider) { Assumes.NotNull(serviceProvider); IBrokeredServiceContainer brokeredServiceContainer = await serviceProvider.GetServiceAsync <SVsBrokeredServiceContainer, IBrokeredServiceContainer>(); var factory = new NuGetBrokeredServiceFactory(); // This service descriptor reference will cause NuGet.VisualStudio.Contracts.dll to load. brokeredServiceContainer.Proffer(ContractsNuGetServices.NuGetProjectServiceV1, factory.CreateNuGetProjectServiceV1); // These service descriptor references will cause NuGet.VisualStudio.Internal.Contracts.dll to load. brokeredServiceContainer.Proffer(NuGetServices.SourceProviderService, factory.CreateSourceProviderServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.SolutionManagerService, factory.CreateSolutionManagerServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.ProjectManagerService, factory.CreateProjectManagerServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.ProjectUpgraderService, factory.CreateProjectUpgraderServiceAsync); }
// This returns a disposable for test purposes only. internal static async ValueTask <IDisposable> ProfferServicesAsync(IAsyncServiceProvider serviceProvider) { Assumes.NotNull(serviceProvider); IBrokeredServiceContainer brokeredServiceContainer = await serviceProvider.GetServiceAsync <SVsBrokeredServiceContainer, IBrokeredServiceContainer>(); #pragma warning disable CA2000 // Dispose objects before losing scope var factory = new NuGetBrokeredServiceFactory(); #pragma warning restore CA2000 // Dispose objects before losing scope // This service descriptor reference will cause NuGet.VisualStudio.Contracts.dll to load. brokeredServiceContainer.Proffer(ContractsNuGetServices.NuGetProjectServiceV1, factory.CreateNuGetProjectServiceV1); // These service descriptor references will cause NuGet.VisualStudio.Internal.Contracts.dll to load. brokeredServiceContainer.Proffer(NuGetServices.SourceProviderService, factory.CreateSourceProviderServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.SolutionManagerService, factory.CreateSolutionManagerServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.ProjectManagerService, factory.CreateProjectManagerServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.ProjectUpgraderService, factory.CreateProjectUpgraderServiceAsync); brokeredServiceContainer.Proffer(NuGetServices.SearchService, factory.CreatePackageSearchServiceAsync); return(factory); }