public void RestoreAssemblyReferences(Sln solution) { foreach (var project in solution.Projects) { RestoreAssemblyReferencesInProject(project); } }
public virtual FileInfo WriteSlnFile(Sln solution, string writeInDirectory) { var outputFile = new FileInfo(GetOutputFilePath(writeInDirectory, solution)); if (!outputFile.Directory.Exists) { outputFile.Directory.Create(); } var renderer = new SlnFileRenderer(solution); var fileContents = renderer.Render(); if (outputFile.Exists && ContentsUnmodified(outputFile, fileContents)) { Log.Info("Solution file is unmodified from previous generation."); return outputFile; } using (var writer = new StreamWriter(outputFile.Open(FileMode.Create))) { writer.Write(fileContents); } Log.Info("Solution file written to " + outputFile.FullName); return outputFile; }
public void RestoreHintPaths(Sln solution, SlnGenerationOptions options) { var packagesDir = Path.Combine(options.SlnOutputPath, "packages"); foreach (var project in solution.Projects) { ConvertProjectHintPaths(project, packagesDir, Mode.Restore); } }
public void HandlesTrailingSlashOnRootDirectory() { var sln = new Sln("sample") { ProjectsRootDirectory = "Fake/Example/" }; var proj = new CsProj { Path = "Fake/Example/ModuleA/ProjectA/ProjectA.csproj", Guid = Guid.NewGuid().ToString("B") }; sln.AddProjects(proj); Assert.That(sln.Folders.FirstOrDefault(f => f.FolderName == "ModuleA"), Is.Not.Null, "Folders"); }
public void CreatesNoSolutionFoldersForSimpleProjectStructure() { var sln = new Sln("sample") {ProjectsRootDirectory = "Fake/Example"}; sln.AddProjects(new CsProj {Path = "Fake/Example/ProjectA/ProjectA.csproj"}); sln.AddProjects(new CsProj {Path = "Fake/Example/ProjectB/ProjectB.csproj"}); Assert.That(sln.Folders, Is.Null, "Folders"); }
public void CreatesSolutionFoldersForNestedProjectStructure() { var sln = new Sln("sample") { ProjectsRootDirectory = "Fake/Example" }; sln.AddProjects(new CsProj { Path = "Fake/Example/ModuleA/ProjectA/ProjectA.csproj" }); sln.AddProjects(new CsProj { Path = "Fake/Example/ModuleA/ProjectB/ProjectB.csproj" }); var folder = sln.Folders.FirstOrDefault(); Assert.That(folder.FolderName, Is.EqualTo("ModuleA")); Assert.That(folder.ContentGuids.Count, Is.EqualTo(2)); }
public void CreatesNestedSolutionFolders() { var sln = new Sln("sample") { ProjectsRootDirectory = "Fake/Example" }; var proj = new CsProj { Path = "Fake/Example/Grouping1/ModuleA/ProjectA/ProjectA.csproj", Guid = Guid.NewGuid().ToString("B")}; sln.AddProjects(proj); var child = sln.Folders.First(f => f.FolderName == "ModuleA"); var parent = sln.Folders.First(f => f.FolderName == "Grouping1"); Assert.That(parent.ContentGuids, Is.EqualTo(new[] {child.Guid})); Assert.That(child.ContentGuids, Is.EqualTo(new[] { proj.Guid })); }
public virtual Sln BuildSln(SlnGenerationOptions options) { this.options = options; builtSln = new Sln(options.SolutionName) { Version = options.VisualStudioVersion, ProjectsRootDirectory = options.ProjectsRootDirectory }; AddProjectsToSln(options); return builtSln; }
public void ConvertToProjectReferences(Sln solution) { var projectsByName = solution.Projects.ToDictionary(p => p.AssemblyName, p => p); foreach (var project in solution.Projects) { var assemblyNamesInSolution = project.ReferencedAssemblyNames.Intersect(projectsByName.Keys).ToArray(); if (assemblyNamesInSolution.Length == 0) continue; ConvertToProjectReference(project, assemblyNamesInSolution.Select(a => projectsByName[a])); } }
public virtual Sln BuildSln(SlnGenerationOptions options) { _options = options; _builtSln = new Sln(options.SolutionName) { Version = options.VisualStudioVersion, ProjectsRootDirectory = options.ProjectsRootDirectory }; AddProjectsToSln(options); return(_builtSln); }
protected void GeneratePartialGraphSolution(string[] targetProjectNames, params CsProj[] projectsList) { var generator = new SlimJim.Model.SlnBuilder(new List<CsProj>(projectsList)); options.AddTargetProjectNames(targetProjectNames); solution = generator.BuildSln(options); }
private void MakeSolution(string name, params CsProj[] csProjs) { solution = new Sln(name, "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"); solution.AddProjects(csProjs); }
private string GetOutputFilePath(string writeInDirectory, Sln solution) { return Path.Combine(writeInDirectory, solution.Name + ".sln"); }
public SlnFileRenderer(Sln solution) { this.solution = solution; }