static void Run(bool overwriteOnSave, string filePath) { if (!File.Exists(filePath)) { throw new Exception($"Provided file {filePath} does not exist"); } var fileInfo = new FileInfo(filePath); IConverter converter = null; if (fileInfo.Extension.Equals(".sln", StringComparison.OrdinalIgnoreCase)) { converter = new Vs2015ToVs2017SolutionConverter(fileInfo); } else if (fileInfo.Extension.Equals(".csproj", StringComparison.OrdinalIgnoreCase)) { converter = new Vs2015ToVs2017ProjectConverter(fileInfo); } converter.ConvertAndSave(overwriteOnSave); }
public void ConvertAndSave(bool overwrite = false) { var solutionFile = File.ReadAllLines(_filePath); var projectLines = solutionFile.Where(s => s.StartsWith("Project")).ToList(); var projects = new List <string>(); foreach (var projectLine in projectLines) { var line = projectLine.Replace(" ", string.Empty); var split = line.IndexOf('='); var argStr = line.Substring(split, line.Length - 1 - split); var args = argStr.Split(','); var project = args[1]; if (!project.ToLower().Contains(".csproj")) { continue; } project = project.Substring(1, project.Length - 1 - 1); projects.Add($"{_solutionLocation}\\{project}"); } foreach (var project in projects) { try { var fileInfo = new FileInfo(project); var projectConverter = new Vs2015ToVs2017ProjectConverter(fileInfo); projectConverter.ConvertAndSave(overwrite); } catch (Exception ex) { Console.Error.WriteLine($"Encountered error processing {project} in {_projectName}: {ex.Message}"); } } }