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"));
        }
예제 #2
0
        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);
                    }
                }
            }
        }