public void AddRequiredReferences(Project project, ProjectReference projectReference) { Argument.IsNotNull(() => project); Argument.IsNotNull(() => projectReference); Log.Info("Adding reference '{0}' to project '{1}'", projectReference, project); project.ProjectReferences += projectReference.ProjectReferences; project.FileIncludes += projectReference.FileIncludes; }
public void AddRequiredReferences(Project project) { Argument.IsNotNull(() => project); var coreReferences = GetCoreReferences(); ProjectReference additionalReferences = null; switch (project.ProjectType) { case ProjectTypes.Console: additionalReferences = GetConsoleReferences(); break; case ProjectTypes.WPF: additionalReferences = GetWpfReference(); break; case ProjectTypes.WinForms: additionalReferences = GetWinFormsReferences(); break; case ProjectTypes.Test: additionalReferences = GetNUnitReferences(); break; case ProjectTypes.Library: break; default: throw new ArgumentOutOfRangeException(); } if (coreReferences != null) { AddRequiredReferences(project, coreReferences); } if (additionalReferences != null) { AddRequiredReferences(project, additionalReferences); } }
private FileInfo CreateTestProjectFile(DirectoryInfo root, Solution solution) { string projectRoot = string.Format("{0}/{1}.Tests/", root.FullName, solution.ProjectName); var directoryInfo = new DirectoryInfo(projectRoot); if (!directoryInfo.Exists) { directoryInfo.Create(); } var projectName = string.Format("{0}.Tests", solution.ProjectName); var project = new Project(solution.TestProjectGuid) { ProjectAssemblyName = string.Format("{0}.Tests", solution.ProjectAssemblyName), ProjectName = projectName, ProjectRootNameSpace = string.Format("{0}.Tests", solution.ProjectRootNameSpace), TargetFramework = solution.TargetFramework, ReleaseOutputPath = string.Format("../../output/Release/{0}", projectName), DebugOutputPath = string.Format("../../output/Debug/{0}", projectName), ProjectOutputType = ProjectOutputTypes.Library }; if (string.Equals(solution.TargetFramework, "v4.5")) { project.ProjectType = ProjectTypes.Test; var packagesFile = new FileInfo(projectRoot + "packages.config"); File.WriteAllText(packagesFile.FullName, _templateRenderer.RenderFile(PackagesTemplate, project)); } _referencesService.AddRequiredReferences(project); var projectFile = new FileInfo(projectRoot + project.ProjectName + ".csproj"); File.WriteAllText(projectFile.FullName, _templateRenderer.RenderFile(ProjectTemplate, project)); return projectFile; }
private FileInfo CreateProjectFile(DirectoryInfo root, Solution solution) { Log.Info("Creating project file"); string projectRoot = string.Format("{0}/{1}/", root.FullName, solution.ProjectName); var directoryInfo = new DirectoryInfo(projectRoot); var projectTemplate = ProjectTemplate; if (!directoryInfo.Exists) { directoryInfo.Create(); } var project = new Project(solution.TestProjectGuid) { ProjectAssemblyName = solution.ProjectAssemblyName, ProjectName = solution.ProjectName, ProjectRootNameSpace = solution.ProjectRootNameSpace, TargetFramework = solution.TargetFramework, ReleaseOutputPath = string.Format("../../output/Release/{0}", solution.ProjectName), DebugOutputPath = string.Format("../../output/Debug/{0}", solution.ProjectName), ProjectType = solution.ProjectType }; project.ProjectOutputType = _projectTypeConverterService.Convert(solution.ProjectType); _referencesService.AddRequiredReferences(project); if (string.Equals(project.ProjectOutputType, "Exe")) { File.WriteAllText(projectRoot + "Program.cs", _templateRenderer.RenderFile(ConsoleProgramClass, project)); } else if (string.Equals(solution.ProjectType, "WPF")) { projectTemplate = WpfProjectTemplate; File.WriteAllText(projectRoot + "App.xaml", _templateRenderer.RenderFile(AppXaml, project)); File.WriteAllText(projectRoot + "App.xaml.cs", _templateRenderer.RenderFile(AppXamlCs, project)); File.WriteAllText(projectRoot + "MainWindow.xaml", _templateRenderer.RenderFile(MainWindowXaml, project)); File.WriteAllText(projectRoot + "MainWindow.xaml.cs", _templateRenderer.RenderFile(MainWindowXamlCs, project)); } else if (string.Equals(solution.ProjectType, "WinForms")) { File.WriteAllText(projectRoot + "Form1.cs", _templateRenderer.RenderFile(Form1Cs, project)); File.WriteAllText(projectRoot + "Form1.Designer.cs", _templateRenderer.RenderFile(Form1DesignerCs, project)); File.WriteAllText(projectRoot + "Program.cs", _templateRenderer.RenderFile(ProgramCs, project)); } var projectFile = new FileInfo(projectRoot + project.ProjectName + ".csproj"); File.WriteAllText(projectFile.FullName, _templateRenderer.RenderFile(ProjectTemplate, project)); return projectFile; }