public VsSolutionRestoreService( IProjectSystemCache projectSystemCache, ISolutionRestoreWorker restoreWorker, [Import("VisualStudioActivityLogger")] NuGet.Common.ILogger logger) { if (projectSystemCache == null) { throw new ArgumentNullException(nameof(projectSystemCache)); } if (restoreWorker == null) { throw new ArgumentNullException(nameof(restoreWorker)); } if (logger == null) { throw new ArgumentNullException(nameof(logger)); } _projectSystemCache = projectSystemCache; _restoreWorker = restoreWorker; _logger = logger; }
public VsSolutionRestoreService( IProjectSystemCache projectSystemCache, ISolutionRestoreWorker restoreWorker, [Import("VisualStudioActivityLogger")] ILogger logger) { _projectSystemCache = projectSystemCache ?? throw new ArgumentNullException(nameof(projectSystemCache)); _restoreWorker = restoreWorker ?? throw new ArgumentNullException(nameof(restoreWorker)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
internal VsSolutionRestoreService( IProjectSystemCache projectSystemCache, ISolutionRestoreWorker restoreWorker, ILogger logger, Microsoft.VisualStudio.Threading.AsyncLazy <IVsSolution2> vsSolution2) { _projectSystemCache = projectSystemCache ?? throw new ArgumentNullException(nameof(projectSystemCache)); _restoreWorker = restoreWorker ?? throw new ArgumentNullException(nameof(restoreWorker)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _vsSolution2 = vsSolution2 ?? throw new ArgumentNullException(nameof(vsSolution2)); }
public VsSolutionRestoreService( IProjectSystemCache projectSystemCache, ISolutionRestoreWorker restoreWorker, [Import(nameof(VisualStudioActivityLogger))] ILogger logger, [Import(typeof(SAsyncServiceProvider))] IAsyncServiceProvider serviceProvider ) : this( projectSystemCache, restoreWorker, logger, new Microsoft.VisualStudio.Threading.AsyncLazy <IVsSolution2>(() => serviceProvider.GetServiceAsync <SVsSolution, IVsSolution2>(), NuGetUIThreadHelper.JoinableTaskFactory)) { }
public static RestoreTask Start(ISolutionRestoreWorker worker, bool forceRestore) { var cts = new CancellationTokenSource(); var task = worker .JoinableTaskFactory .RunAsync(() => worker.ScheduleRestoreAsync( SolutionRestoreRequest.OnBuild(forceRestore), cts.Token)) .Task; return(new RestoreTask { _cts = cts, _task = task }); }
// A constructor utilized for running unit-tests public SolutionRestoreBuildHandler( ISettings settings, ISolutionRestoreWorker restoreWorker, IVsSolutionBuildManager3 buildManager) { Assumes.Present(settings); Assumes.Present(restoreWorker); Assumes.Present(buildManager); Settings = new Lazy <ISettings>(() => settings); SolutionRestoreWorker = new Lazy <ISolutionRestoreWorker>(() => restoreWorker); _solutionBuildManager = buildManager; _isMEFInitialized = true; }
// A constructor utilized for running unit-tests public SolutionRestoreBuildHandler( INuGetLockService lockService, ISettings settings, ISolutionRestoreWorker restoreWorker, IVsSolutionBuildManager3 buildManager) { Assumes.Present(lockService); Assumes.Present(settings); Assumes.Present(restoreWorker); Assumes.Present(buildManager); LockService = new Lazy <INuGetLockService>(() => lockService); Settings = new Lazy <ISettings>(() => settings); SolutionRestoreWorker = new Lazy <ISolutionRestoreWorker>(() => restoreWorker); _solutionBuildManager = buildManager; }
private void UserControl_Loaded(object sender, RoutedEventArgs e) { if (_packageRestoreManager != null) { NuGetUIThreadHelper.JoinableTaskFactory.RunAsync(async delegate { try { string solutionDirectory = await _solutionManager.GetSolutionDirectoryAsync(CancellationToken.None); _componentModel = await AsyncServiceProvider.GlobalProvider.GetComponentModelAsync(); _vsSolutionManager = _componentModel.GetService <IVsSolutionManager>(); _solutionRestoreWorker = _componentModel.GetService <ISolutionRestoreWorker>(); // if the project is PR and there is no restore running, check for missing assets file // otherwise check for missing packages if (await ExperimentUtility.IsTransitiveOriginExpEnabled.GetValueAsync(CancellationToken.None) && _projectContextInfo?.ProjectStyle == ProjectModel.ProjectStyle.PackageReference && _solutionRestoreWorker.IsRunning == false && await GetMissingAssetsFileStatusAsync(_projectContextInfo.ProjectId)) { _packageRestoreManager.RaiseAssetsFileMissingEventForProjectAsync(true); } else { await _packageRestoreManager.RaisePackagesMissingEventForSolutionAsync(solutionDirectory, CancellationToken.None); } } catch (Exception ex) { await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); // By default, restore bar is invisible. So, in case of failure of RaisePackagesMissingEventForSolutionAsync, assume it is needed UpdateRestoreBar(packagesMissing: true); var unwrappedException = ExceptionUtility.Unwrap(ex); ShowErrorUI(unwrappedException.Message); } }).PostOnFailure(nameof(PackageRestoreBar)); } }