/// <summary> /// Loads a list of all currently installed packages by reading the packages.config file. /// </summary> /// <returns>A newly created <see cref="PackagesConfigFile"/>.</returns> public static PackagesConfigFile Load(string filepath) { var configFile = new PackagesConfigFile { Packages = new List <NugetPackageIdentifier>() }; // Create a package.config file, if there isn't already one in the project if (!File.Exists(filepath)) { SystemProxy.Log($"No packages.config file found. Creating default at {filepath}"); configFile.Save(filepath); SystemProxy.RefreshAssets(); } var packagesFile = XDocument.Load(filepath); foreach (var packageElement in packagesFile.Root.Elements()) { var package = new NugetPackage { Id = packageElement.Attribute("id").Value, Version = packageElement.Attribute("version").Value, IsManuallyInstalled = packageElement.Attribute("manual") != null }; configFile.Packages.Add(package); } return(configFile); }
/// <summary> /// Loads a list of all currently installed packages by reading the packages.config file. /// </summary> /// <returns>A newly created <see cref="PackagesConfigFile"/>.</returns> public static PackagesConfigFile Load(string filepath) { PackagesConfigFile configFile = new PackagesConfigFile(); configFile.Packages = new List <NugetPackageIdentifier>(); // Create a package.config file, if there isn't already one in the project if (!File.Exists(filepath)) { Debug.LogFormat("No packages.config file found. Creating default at {0}", filepath); configFile.Save(filepath); AssetDatabase.Refresh(); } XDocument packagesFile = XDocument.Load(filepath); foreach (var packageElement in packagesFile.Root.Elements()) { NugetPackage package = new NugetPackage(); package.Id = packageElement.Attribute("id").Value; package.Version = packageElement.Attribute("version").Value; configFile.Packages.Add(package); } return(configFile); }
/// <summary> /// Loads a list of all currently installed packages by reading the packages.config file. /// </summary> /// <returns>A newly created <see cref="PackagesConfigFile"/>.</returns> public static PackagesConfigFile Load(string filepath) { PackagesConfigFile configFile = new PackagesConfigFile(); configFile.Packages = new List<NugetPackageIdentifier>(); // Create a package.config file, if there isn't already one in the project if (!File.Exists(filepath)) { Debug.LogFormat("No packages.config file found. Creating default at {0}", filepath); configFile.Save(filepath); AssetDatabase.Refresh(); } XDocument packagesFile = XDocument.Load(filepath); foreach (var packageElement in packagesFile.Root.Elements()) { NugetPackage package = new NugetPackage(); package.Id = packageElement.Attribute("id").Value; package.Version = packageElement.Attribute("version").Value; configFile.Packages.Add(package); } return configFile; }
/// <summary> /// Restores all packages defined in packages.config. /// </summary> public static void Restore() { GetInstalledPackages(); Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); try { // Reload since the packages.config file may have been edited by hand PackagesConfigFile = PackagesConfigFile.Load(PackagesConfigFilePath); float progressStep = 1.0f / PackagesConfigFile.Packages.Count; float currentProgress = 0; // copy the list since the InstallIdentifier operation below changes the actual installed packages list var packagesToInstall = new List<NugetPackageIdentifier>(PackagesConfigFile.Packages); LogVerbose("Restoring {0} packages.", packagesToInstall.Count); foreach (var package in packagesToInstall) { if (package != null) { EditorUtility.DisplayProgressBar("Restoring NuGet Packages", string.Format("Restoring {0} {1}", package.Id, package.Version), currentProgress); if (!IsInstalled(package)) { LogVerbose("---Restoring {0} {1}", package.Id, package.Version); InstallIdentifier(package); } else { LogVerbose("---Already installed: {0} {1}", package.Id, package.Version); } } currentProgress += progressStep; } } catch (Exception e) { Debug.LogErrorFormat("{0}", e.ToString()); } finally { stopwatch.Stop(); LogVerbose("Restoring packages took {0} ms", stopwatch.ElapsedMilliseconds); AssetDatabase.Refresh(); EditorUtility.ClearProgressBar(); } }