private static void GenerateSolution(SolutionData solutionData) { try { MessageFilter.Register(); System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE"); Object obj = System.Activator.CreateInstance(type, true); EnvDTE.DTE dte = (EnvDTE.DTE)obj; dte.MainWindow.Visible = false; // create a new solution dte.Solution.Create(solutionData.directoryPath + "\\", solutionData.solutionName); dte.ExecuteCommand("File.SaveAll"); Solution2 solution = (Solution2)dte.Solution; createProject(solutionData, solution, dte); EnvDTE.Project project = solution.Projects.Item(1); DTE2 dte2 = (DTE2)dte; addContentToProject(solutionData, project, dte2); // save and quit dte.ExecuteCommand("File.SaveAll"); dte.Quit(); MessageFilter.Revoke(); } catch { ErrorHandling.handleWrongUsage(); } }
public static SolutionData ReadSolutionData() { SolutionData solutionData = new SolutionData(); OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = "C:\\"; ofd.Filter = "Text Files (.txt)|*.txt"; ofd.Multiselect = false; DialogResult result = ofd.ShowDialog(); if (result == DialogResult.OK) { solutionData.directoryPath = Path.GetDirectoryName(ofd.FileName); } else { ErrorHandling.handleWrongUsage(); return(solutionData); } string[] lines = null; try { lines = File.ReadAllLines(ofd.FileName); foreach (string line in lines) { string[] parts = line.Trim().Split(' '); if (parts.Length == 0) { continue; } if (parts[0] == "SOLUTION_NAME") { solutionData.solutionName = parts[1]; } else if (parts[0] == "CS_FORMS") { solutionData.projectType = ProjectType.CsForms; solutionData.projectName = parts[1]; } else if (parts[0] == "CS_CONSOLE") { solutionData.projectType = ProjectType.CsConsole; solutionData.projectName = parts[1]; } else if (parts[0] == "CPP_EMPTY") { solutionData.projectType = ProjectType.CppEmpty; solutionData.projectName = parts[1]; } else if (parts[0] == "CLASS") { ClassData classData = new ClassData(); classData.className = parts[1]; for (int i = 2; i < parts.Length; i += 2) { if (parts[i] == ":") { classData.superClassName = parts[i + 1]; } else { classData.interfaceNames.Add(parts[i + 1]); } } solutionData.classes.Add(classData); } else if (parts[0] == "ENUM") { ClassData classData = new ClassData(); classData.classType = ClassType.Enum; classData.className = parts[1]; solutionData.classes.Add(classData); } else if (parts[0] == "FORM") { ClassData classData = new ClassData(); classData.classType = ClassType.Form; classData.className = parts[1]; solutionData.classes.Add(classData); } else if (parts[0] == "INTERFACE") { ClassData classData = new ClassData(); classData.classType = ClassType.Interface; classData.className = parts[1]; solutionData.classes.Add(classData); } } } catch { ErrorHandling.handleWrongUsage(); } return(solutionData); }