public static async Task InstallpackageAsync(string manifestFilePath, InstallablePackage entry, InstallSettings settings) { _files.Clear(); await VSPackage.Manager.Install(manifestFilePath, entry, settings); var project = ProjectHelpers.GetActiveProject(); project.AddFilesToProject(_files); }
public static async Task RestorePackagesAsync(string manifestFile) { try { if (await IsValidJson(manifestFile)) { _files.Clear(); var manifest = await Manifest.FromFileOrNewAsync(manifestFile); await VSPackage.Manager.InstallAll(manifest); Telemetry.TrackEvent("Packages restored"); if (_files.Count > 0) { VSPackage.DTE.StatusBar.Animate(true, EnvDTE.vsStatusAnimation.vsStatusAnimationGeneral); VSPackage.DTE.StatusBar.Text = $"Adding {_files.Count} files to project. This may take a while..."; try { var project = ProjectHelpers.GetActiveProject(); project.AddFilesToProject(_files); } finally { VSPackage.DTE.StatusBar.Animate(false, EnvDTE.vsStatusAnimation.vsStatusAnimationGeneral); } } VSPackage.DTE.StatusBar.Text = $"{manifest.Packages.Count} libraries successfully installed"; } else { VSPackage.DTE.StatusBar.Text = Properties.Resources.ManifestInvalidJson; } } catch (PackageNotFoundException ex) { VSPackage.DTE.StatusBar.Text = string.Format(Properties.Resources.ExceptionLoadingPackages, ex.Name, ex.Version); Logger.Log(ex); } catch (Exception ex) { VSPackage.DTE.StatusBar.Text = Properties.Resources.ErrorRestoringPackages; Logger.Log(ex); } }