internal void ConvertSolutionEntries(string solutionFilePath) { var oldLines = File.ReadAllLines(solutionFilePath); var newLines = new List <string>(); foreach (var line in oldLines) { if (SolutionUtil.IsProjectLine(line)) { var entry = SolutionUtil.ParseProjectLine(line); if (ProjectNameMap.TryGetValue(entry.Name, out var newName)) { var newEntry = new ProjectEntry(ChangeFileName(entry.RelativeFilePath, newName), newName, entry.Guid, entry.TypeGuid); newLines.Add(SolutionUtil.CreateProjectLine(newEntry)); } else { newLines.Add(line); } } else { newLines.Add(line); } } File.WriteAllLines(solutionFilePath, newLines); }
internal void Convert() { var dir = Path.GetDirectoryName(SolutionFilePath); var lines = File.ReadAllLines(SolutionFilePath); using (var file = File.Open(SolutionFilePath, FileMode.Create, FileAccess.Write)) using (var writer = new StreamWriter(file)) { foreach (var line in lines) { if (!SolutionUtil.IsProjectLine(line)) { writer.WriteLine(line); continue; } var entry = SolutionUtil.ParseProjectLine(line); if (entry.ProjectType != ProjectFileType.CSharp && entry.ProjectType != ProjectFileType.Basic) { writer.WriteLine(line); continue; } var projectFilePath = Path.Combine(dir, entry.RelativeFilePath); var projectUtil = new ProjectUtil(projectFilePath); var guid = GetProjectSystemGuid(projectUtil, entry.ProjectType == ProjectFileType.CSharp); if (guid == entry.TypeGuid) { writer.WriteLine(line); continue; } entry = new ProjectEntry(entry.RelativeFilePath, entry.Name, entry.Guid, guid); writer.WriteLine(SolutionUtil.CreateProjectLine(entry)); } } }