public void When_generating_build_order_then_project_with_no_references_should_be_first() { //// Arrange var paths = new string[] { "../../../MyToolkit.Extended.Wp8/MyToolkit.Extended.Wp8.csproj", "../../../MyToolkit/MyToolkit.csproj", }; //// Act var buildOrder = ProjectDependencyResolver.GetBuildOrder(paths).ToArray(); //// Assert Assert.AreEqual(2, buildOrder.Length); Assert.IsTrue(buildOrder[0].Contains("MyToolkit.csproj")); Assert.IsTrue(buildOrder[1].Contains("MyToolkit.Extended.Wp8.csproj")); }
private void RemoveProjectsFromSolution(List <ProjectModel> projectsToDelete) { if (RemoveProjects) { var pathsOfProjectsToRemove = projectsToDelete.Select(p => p.Path); var projectBuildOrder = ProjectDependencyResolver.GetBuildOrder(pathsOfProjectsToRemove).ToList(); var orderedProjectsToRemove = projectsToDelete .OrderByDescending(p => projectBuildOrder.IndexOf(p.Path)).Distinct().ToList(); foreach (var project in orderedProjectsToRemove) { if (project != null) { project.RemoveFromSolution(Application.Solution); } } } }