private FileInfo CreateProjectFile(DirectoryInfo root, SolutionModel model) { string projectRoot = string.Format("{0}/{1}/", root.FullName, model.ProjectName); var directoryInfo = new DirectoryInfo(projectRoot); var projectTemplate = ProjectTemplate; if (!directoryInfo.Exists) { directoryInfo.Create(); } var projectModel = new ProjectModel(model.TestProjectGuid) { ProjectAssemblyName = model.ProjectAssemblyName, ProjectName = model.ProjectName, ProjectRootNameSpace = model.ProjectRootNameSpace, TargetFramework = model.TargetFramework, ReleaseOutputPath = string.Format("../../output/Release/{0}", model.ProjectName), DebugOutputPath = string.Format("../../output/Debug/{0}", model.ProjectName), ProjectType = model.ProjectType }; projectModel.ProjectOutputType = projectModel.ProjectTypeToProjectOutputType(model.ProjectType); projectModel.AddCoreReferences(); if (projectModel.ProjectOutputType == "Exe") { File.WriteAllText(projectRoot + "Program.cs", TemplateRenderer.Render(ConsoleProgramClass, projectModel)); } else if (model.ProjectType == "WPF") { projectTemplate = WpfProjectTemplate; File.WriteAllText(projectRoot + "App.xaml", TemplateRenderer.Render(AppXaml, projectModel)); File.WriteAllText(projectRoot + "App.xaml.cs", TemplateRenderer.Render(AppXamlCs, projectModel)); File.WriteAllText(projectRoot + "MainWindow.xaml", TemplateRenderer.Render(MainWindowXaml, projectModel)); File.WriteAllText(projectRoot + "MainWindow.xaml.cs", TemplateRenderer.Render(MainWindowXamlCs, projectModel)); } else if (model.ProjectType == "WinForms") { File.WriteAllText(projectRoot + "Form1.cs", TemplateRenderer.Render(Form1Cs, projectModel)); File.WriteAllText(projectRoot + "Form1.Designer.cs", TemplateRenderer.Render(Form1DesignerCs, projectModel)); File.WriteAllText(projectRoot + "Program.cs", TemplateRenderer.Render(ProgramCs, projectModel)); } var projectFile = new FileInfo(projectRoot + projectModel.ProjectName + ".csproj"); File.WriteAllText(projectFile.FullName, TemplateRenderer.Render(projectTemplate, projectModel)); return projectFile; }
private FileInfo CreateProjectFile(DirectoryInfo root, SolutionModel model) { string projectRoot = string.Format("{0}/{1}/", root.FullName, model.ProjectName); var directoryInfo = new DirectoryInfo(projectRoot); if (!directoryInfo.Exists) { directoryInfo.Create(); } var projectModel = new ProjectModel(model.TestProjectGuid) { ProjectAssemblyName = model.ProjectAssemblyName, ProjectName = model.ProjectName, ProjectRootNameSpace = model.ProjectRootNameSpace, TargetFramework = model.TargetFramework, ReleaseOutputPath = string.Format("../../output/Release/{0}", model.ProjectName), DebugOutputPath = string.Format("../../output/Debug/{0}", model.ProjectName), ProjectType = model.ProjectType }; projectModel.ProjectOutputType = projectModel.ProjectTypeToProjectOutputType(model.ProjectType); projectModel.AddCoreReferences(); var projectFile = new FileInfo(projectRoot + projectModel.ProjectName + ".csproj"); File.WriteAllText(projectFile.FullName, TemplateRenderer.Render(ProjectTemplate, projectModel)); return projectFile; }