public void Execute (CancellationToken cancellationToken)
		{
			Task task = ExecuteAsync (cancellationToken);
			using (var restoreTask = new PackageRestoreTask (task)) {
				task.Wait ();
			}
		}
        async Task RestorePackagesAsync(
            List <BuildIntegratedNuGetProject> projects,
            CancellationToken token)
        {
            var packageRestorer = new MonoDevelopBuildIntegratedRestorer(solutionManager);

            var restoreTask = packageRestorer.RestorePackages(projects, token);

            using (var task = new PackageRestoreTask(restoreTask)) {
                await restoreTask;
            }

            // Ensure MSBuild tasks are up to date when the next build is run.
            foreach (BuildIntegratedNuGetProject project in projects)
            {
                var dotNetProject = project.GetDotNetProject();
                dotNetProject.DotNetProject.ShutdownProjectBuilder();

                if (!packageRestorer.LockFileChanged)
                {
                    // Need to refresh the references since the restore did not.
                    await Runtime.RunInMainThread(() => {
                        dotNetProject.DotNetProject.DotNetCoreNotifyReferencesChanged();
                    });
                }
            }
        }
		public void Execute (CancellationToken cancellationToken)
		{
			Task task = RestorePackagesAsync (cancellationToken);
			using (var restoreTask = new PackageRestoreTask (task)) {
				task.Wait ();
			}

			if (CheckForUpdatesAfterRestore) {
				CheckForUpdates ();
			}
		}