123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using System.Xml;
- namespace VersionTool
- {
- public class AssemblyUpdater
- {
- public static void UpdateVersion(string folder, string version)
- {
- try
- {
- // var files = Directory.GetFiles(folder, "AssemblyInfo.cs", SearchOption.AllDirectories).Where(x => x.Contains("Properties")).ToArray();
- // foreach (var file in files)
- // {
- // if (File.Exists(file))
- // {
- // var sb = new StringBuilder();
- // string text;
- // using (var fs = new FileStream(file, FileMode.Open, FileAccess.Read))
- // {
- // using (var sr = new StreamReader(fs))
- // {
- // string s;
- // while ((s = sr.ReadLine()) != null)
- // {
- // if (s.Contains("assembly: AssemblyVersion"))
- // {
- // s = Utility.GetStr(s, version);
- // }
- // if (s.Contains("assembly: AssemblyFileVersion"))
- // {
- // s = Utility.GetStr(s, version);
- // }
- // if (s.Contains("assembly: AssemblyDescription"))
- // {
- // s = Utility.GetStr(s, "Powered by VINNO");
- // }
- // if (s.Contains("assembly: AssemblyCompany"))
- // {
- // s = Utility.GetStr(s, "VINNO Technology (Suzhou) Co. Ltd.");
- // }
- // if (s.Contains("assembly: AssemblyProduct"))
- // {
- // s = Utility.GetStr(s, "VINNO vCloud System");
- // }
- // if (s.Contains("assembly: AssemblyCopyright"))
- // {
- // s = Utility.GetStr(s, "Copyright © VINNO 2018");
- // }
- // if (s.Contains("assembly: AssemblyTrademark"))
- // {
- // s = Utility.GetStr(s, "VINNO");
- // }
- // sb.AppendLine(s);
- // }
- // text = sb.ToString();
- // }
- // }
- // using (var fs = new FileStream(file, FileMode.Create, FileAccess.Write))
- // {
- // using (var sw = new StreamWriter(fs, Encoding.UTF8))
- // {
- // sw.Write(text);
- // }
- // }
- // }
- // }
- // files = Directory.GetFiles(folder, "Info.plist", SearchOption.AllDirectories);
- // foreach (var file in files)
- // {
- // try
- // {
- // if (File.Exists(file))
- // {
- // //XML
- // var document = new XmlDocument();
- // document.Load(file);
- // var root = document.SelectSingleNode("plist");
- // if (root != null)
- // {
- // var dict = root.SelectSingleNode("dict");
- // SetVersion(version, dict, "CFBundleVersion");
- // SetVersion(version, dict, "CFBundleShortVersionString");
- // }
- // document.Save(file);
- // }
- // }
- // catch (Exception e)
- // {
- // Console.WriteLine($"load XML[{file}] err:{e}");
- // }
- // }
- // files = Directory.GetFiles(folder, "*.Core.csproj", SearchOption.AllDirectories);
- // UpdateFileVersion(version, files);
- // files = Directory.GetFiles(folder, "*.Management.csproj", SearchOption.AllDirectories);
- // UpdateFileVersion(version, files);
- var files = Directory.GetFiles(folder, "*.csproj", SearchOption.AllDirectories);
- // UpdateStandardProjectVersion(version, files);
- UpdateNetProjectVersion(version, files);
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message + e.StackTrace);
- }
- }
- /// <summary>
- /// .net 6.0 工程 更新版本
- /// </summary>
- /// <param name="version"></param>
- /// <param name="files"></param>
- private static void UpdateNetProjectVersion(string version, string[] files)
- {
- foreach (var file in files)
- {
- if (File.Exists(file))
- {
- //XML
- var document = new XmlDocument();
- document.Load(file);
- var root = document.SelectSingleNode("Project");
- if (root != null)
- {
- var propertyGroupNode = root.SelectSingleNode("PropertyGroup");
- if (propertyGroupNode != null)
- {
- var versionNode = propertyGroupNode.SelectSingleNode("Version");
- if (versionNode == null)
- {
- versionNode = document.CreateElement("Version");
- propertyGroupNode.AppendChild(versionNode);
- }
- versionNode.InnerText = version;
- var assemblyVersionNode = propertyGroupNode.SelectSingleNode("AssemblyVersion");
- if (assemblyVersionNode == null)
- {
- assemblyVersionNode = document.CreateElement("AssemblyVersion");
- propertyGroupNode.AppendChild(assemblyVersionNode);
- }
- assemblyVersionNode.InnerText = version;
- var fileVersionNode = propertyGroupNode.SelectSingleNode("FileVersion");
- if (fileVersionNode == null)
- {
- fileVersionNode = document.CreateElement("FileVersion");
- propertyGroupNode.AppendChild(fileVersionNode);
- }
- fileVersionNode.InnerText = version;
- }
- }
- document.Save(file);
- }
- }
- }
- // private static void UpdateFileVersion(string version, string[] files)
- // {
- // foreach (var file in files)
- // {
- // if (File.Exists(file))
- // {
- // //XML
- // var document = new XmlDocument();
- // document.Load(file);
- // var root = document.SelectSingleNode("Project");
- // if (root != null)
- // {
- // var propertyGroups = root.SelectNodes("PropertyGroup");
- // if (propertyGroups != null && propertyGroups.Count > 0)
- // {
- // foreach (XmlNode node in propertyGroups)
- // {
- // var assemblyVersionNode = node.SelectSingleNode("AssemblyVersion");
- // if (assemblyVersionNode != null)
- // {
- // assemblyVersionNode.InnerText = version;
- // }
- // var versionNode = node.SelectSingleNode("Version");
- // if (versionNode != null)
- // {
- // versionNode.InnerText = version;
- // }
- // }
- // }
- // }
- // document.Save(file);
- // }
- // }
- // }
- // private static void UpdateStandardProjectVersion(string version, string[] files)
- // {
- // foreach (var file in files)
- // {
- // if (File.Exists(file))
- // {
- // //XML
- // var document = new XmlDocument();
- // document.Load(file);
- // var root = document.SelectSingleNode("Project");
- // if (root != null)
- // {
- // var propertyGroupNode = root.SelectSingleNode("PropertyGroup");
- // if (propertyGroupNode != null)
- // {
- // var targetFrameworkNode = propertyGroupNode.SelectSingleNode("TargetFramework");
- // if (targetFrameworkNode != null && targetFrameworkNode.InnerText.StartsWith("netstandard"))
- // {
- // var versionNode = propertyGroupNode.SelectSingleNode("Version");
- // if (versionNode == null)
- // {
- // versionNode = document.CreateElement("Version");
- // propertyGroupNode.AppendChild(versionNode);
- // }
- // versionNode.InnerText = version;
- // }
- // }
- // }
- // document.Save(file);
- // }
- // }
- // }
- // private static void SetVersion(string version, XmlNode dict, string fieldNeedToSetVersion)
- // {
- // var index = 0;
- // if (dict != null)
- // {
- // foreach (XmlNode item in dict.ChildNodes)
- // {
- // index++;
- // if (item.InnerText == fieldNeedToSetVersion)
- // {
- // break;
- // }
- // }
- // var v = Version.Parse(version);
- // dict.ChildNodes[index].InnerText = $"{v.Major}.{v.Minor}.{v.Build}";
- // }
- // }
- }
- }
|