public static void UpdateVersions(this UpdaterResult result, string name, string version) { Console.WriteLine("Updating NuGet package dependencies versions:"); foreach (var v in result.GroupedReferences[name]) { if (v.VersionAttribute != null) { if (version != v.VersionAttribute.Value) { Console.WriteLine($"Name: {name}, old: {v.VersionAttribute.Value}, new: {version}, file: {v.FileName}"); v.VersionAttribute.Value = version; v.Document.Save(v.FileName); } } else { var versionElement = v.Reference.Elements().First(x => x.Name.LocalName == "Version"); if (versionElement != null) { if (version != v.VersionAttribute.Value) { Console.WriteLine($"Name: {name}, old: {versionElement.Value}, new: {version}, file: {v.FileName}"); versionElement.Value = version; v.Document.Save(v.FileName); } } } } }
public static UpdaterResult FindReferences(this UpdaterResult updater, string searchPath, string searchPattern, IEnumerable <string> ignoredPaths) { FindReferences(searchPath, searchPattern, ignoredPaths, updater.References, updater.Documents); updater.GroupedReferences = updater.References .GroupBy(x => x.Name) .OrderBy(x => x.Key) .ToDictionary(x => x.Key, x => (IList <PackageReference>) new ObservableCollection <PackageReference>(x)); return(updater); }
public static void PrintVersions(this UpdaterResult result) { Console.WriteLine("NuGet package dependencies versions:"); foreach (var package in result.GroupedReferences) { Console.WriteLine($"Package {package.Key} is installed:"); foreach (var v in package.Value) { Console.WriteLine($"{v.Version}, {v.FileName}"); } } }
public static void PrintVersions(this UpdaterResult result) { Logger.Log("NuGet package dependencies versions:"); if (result.GroupedReferences != null) { foreach (var package in result.GroupedReferences) { Logger.Log($"Package {package.Key} is installed:"); foreach (var v in package.Value) { Logger.Log($"{v.Version}, {v.FileName}"); } } } }
public static void ValidateVersions(this UpdaterResult result) { Console.WriteLine("Checking installed NuGet package dependencies versions:"); foreach (var package in result.GroupedReferences) { var packageVersion = package.Value.First().Version; bool isValidVersion = package.Value.All(x => x.Version == packageVersion); if (!isValidVersion) { Console.WriteLine($"Error: package {package.Key} has multiple versions installed:"); foreach (var v in package.Value) { Console.WriteLine($"{v.Version}, {v.FileName}"); } throw new Exception("Detected multiple NuGet package version installed for different projects."); } } ; Console.WriteLine("All NuGet package dependencies versions are valid."); }
public static void UpdateVersions(this UpdaterResult result, string name, string version) { Logger.Log("Updating NuGet package dependencies versions:"); if (result.GroupedReferences != null) { foreach (var pr in result.GroupedReferences[name]) { if (pr.VersionAttribute != null) { if (version != pr.VersionAttribute.Value && pr.Document != null) { Logger.Log($"Name: {name}, old: {pr.VersionAttribute.Value}, new: {version}, file: {pr.FileName}"); pr.VersionAttribute.Value = version; pr.Document.Save(pr.FileName); } } else { if (pr.Reference != null) { var versions = pr.Reference.SelectNodes("descendant::Version"); if (versions.Count > 0) { var versionElement = versions[0]; if (version != versionElement.InnerText && pr.Document != null) { Logger.Log($"Name: {name}, old: {versionElement.InnerText}, new: {version}, file: {pr.FileName}"); versionElement.InnerText = version; pr.Document.Save(pr.FileName); } } } } } } }