protected async Task CheckMissingPackagesAsync() { var solutionDirectory = await VsSolutionManager.GetSolutionDirectoryAsync(); var packages = await PackageRestoreManager.GetPackagesInSolutionAsync(solutionDirectory, CancellationToken.None); if (packages.Any(p => p.IsMissing)) { var packageRestoreConsent = new PackageRestoreConsent(ConfigSettings); if (packageRestoreConsent.IsGranted) { await TaskScheduler.Default; using (var cacheContext = new SourceCacheContext()) { var logger = new LoggerAdapter(this); var downloadContext = new PackageDownloadContext(cacheContext) { ParentId = OperationId, ClientPolicyContext = ClientPolicyContext.GetClientPolicy(ConfigSettings, logger) }; var result = await PackageRestoreManager.RestoreMissingPackagesAsync( solutionDirectory, packages, this, downloadContext, logger, Token); if (result.Restored) { await PackageRestoreManager.RaisePackagesMissingEventForSolutionAsync(solutionDirectory, CancellationToken.None); return; } } } ErrorHandler.HandleException( new InvalidOperationException(Resources.Cmdlet_MissingPackages), terminating: true, errorId: NuGetErrorId.MissingPackages, category: ErrorCategory.InvalidOperation); } }