示例#1
0
        /// <summary>
        /// Initializes the singleton instance of the command.
        /// </summary>
        /// <param name="serviceProvider">Owner package, not null.</param>
        public static async Task InitializeAsync(Microsoft.VisualStudio.Shell.IAsyncServiceProvider serviceProvider)
        {
            Assumes.Present(serviceProvider);

            _instance = new SolutionRestoreCommand();

            var componentModel = await serviceProvider.GetComponentModelAsync();

            componentModel.DefaultCompositionService.SatisfyImportsOnce(_instance);

            await _instance.SubscribeAsync(serviceProvider);
        }
        // A factory method invoked internally only
        internal static async Task <IDisposable> InitializeAsync(Microsoft.VisualStudio.Shell.IAsyncServiceProvider serviceProvider)
        {
            Assumes.Present(serviceProvider);

            var instance = new SolutionRestoreBuildHandler();

            var componentModel = await serviceProvider.GetComponentModelAsync();

            componentModel.DefaultCompositionService.SatisfyImportsOnce(instance);

            await instance.SubscribeAsync(serviceProvider);

            return(instance);
        }
示例#3
0
        public void UpdateSolution_QueryDelayBuildAction(uint dwAction, out IVsTask pDelayTask)
        {
            if (!_isMEFInitialized)
            {
                ThreadHelper.JoinableTaskFactory.Run(async() =>
                {
                    var componentModel = await _serviceProvider.GetComponentModelAsync();
                    componentModel.DefaultCompositionService.SatisfyImportsOnce(this);
                });

                _isMEFInitialized = true;
            }

            pDelayTask = SolutionRestoreWorker.Value.JoinableTaskFactory.RunAsyncAsVsTask(
                VsTaskRunContext.UIThreadBackgroundPriority, (token) => RestoreAsync(dwAction, token));
        }
        /// <summary>
        /// Initialize all MEF imports for this package and also add required event handlers.
        /// </summary>
        private async Task InitializeMEFAsync()
        {
            _initialized = true;

            var componentModel = await _asyncServiceProvider.GetComponentModelAsync();

            Assumes.Present(componentModel);
            componentModel.DefaultCompositionService.SatisfyImportsOnce(this);
            var experimentationService = NuGetExperimentationService.Value;
            await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            Brushes.LoadVsBrushes(experimentationService);

            _dte = await _asyncServiceProvider.GetServiceAsync <SDTE, DTE>();

            Assumes.Present(_dte);

            _dteEvents = _dte.Events.DTEEvents;
            //_dteEvents.OnBeginShutdown += OnBeginShutDown;

            if (SolutionManager.Value.NuGetProjectContext == null)
            {
                SolutionManager.Value.NuGetProjectContext = ProjectContext.Value;
            }

            // when NuGet loads, if the current solution has some package
            // folders marked for deletion (because a previous uninstalltion didn't succeed),
            // delete them now.
            if (await SolutionManager.Value.IsSolutionOpenAsync())
            {
                await DeleteOnRestartManager.Value.DeleteMarkedPackageDirectoriesAsync(ProjectContext.Value);
            }

            //ProjectRetargetingHandler = new ProjectRetargetingHandler(_dte, SolutionManager.Value, this, componentModel);
            //ProjectUpgradeHandler = new ProjectUpgradeHandler(this, SolutionManager.Value);

            SolutionUserOptions.Value.LoadSettings();
        }
        private async Task InitializeMEFAsync()
        {
            var componentModel = await _serviceProvider.GetComponentModelAsync();

            componentModel.DefaultCompositionService.SatisfyImportsOnce(_instance);
        }