Exemple #1
0
        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));
                    }
                }
        }