From 98bd59924b8a8ffeea8814dfa19a8542dec47d69 Mon Sep 17 00:00:00 2001 From: tmat Date: Mon, 6 Jul 2020 19:06:00 -0700 Subject: [PATCH] Remove requirement to list all transitively referenced projects in ProjectReferences of each project --- src/Tools/BuildBoss/ProjectCheckerUtil.cs | 58 ----------------------- 1 file changed, 58 deletions(-) diff --git a/src/Tools/BuildBoss/ProjectCheckerUtil.cs b/src/Tools/BuildBoss/ProjectCheckerUtil.cs index 5753dc7d985..cfaa25464ad 100644 --- a/src/Tools/BuildBoss/ProjectCheckerUtil.cs +++ b/src/Tools/BuildBoss/ProjectCheckerUtil.cs @@ -102,7 +102,6 @@ private bool CheckProjectReferences(TextWriter textWriter) var declaredList = declaredEntryList.Select(x => x.ProjectKey).ToList(); allGood &= CheckProjectReferencesComplete(textWriter, declaredList); allGood &= CheckUnitTestReferenceRestriction(textWriter, declaredList); - allGood &= CheckTransitiveReferences(textWriter, declaredList); allGood &= CheckNoGuidsOnProjectReferences(textWriter, declaredEntryList); return allGood; @@ -261,63 +260,6 @@ private bool CheckUnitTestReferenceRestriction(TextWriter textWriter, IEnumerabl return allGood; } - /// - /// In order to ensure all dependencies are properly copied on deployment projects, the declared reference - /// set much match the transitive dependency set. When there is a difference it represents dependencies that - /// MSBuild won't deploy on build. - /// - private bool CheckTransitiveReferences(TextWriter textWriter, IEnumerable declaredReferences) - { - if (!_projectUtil.IsDeploymentProject) - { - return true; - } - - var list = GetProjectReferencesTransitive(declaredReferences); - var set = new HashSet(declaredReferences); - var allGood = true; - foreach (var key in list) - { - if (!set.Contains(key)) - { - textWriter.WriteLine($"Missing project reference {key.FileName}"); - allGood = false; - } - } - - return allGood; - } - - private List GetProjectReferencesTransitive(IEnumerable declaredReferences) - { - var list = new List(); - var toVisit = new Queue(declaredReferences); - var seen = new HashSet(); - - while (toVisit.Count > 0) - { - var current = toVisit.Dequeue(); - if (!seen.Add(current)) - { - continue; - } - - if (!_solutionMap.TryGetValue(current, out var data)) - { - continue; - } - - list.Add(current); - foreach (var dep in data.ProjectUtil.GetDeclaredProjectReferences()) - { - toVisit.Enqueue(dep.ProjectKey); - } - } - - list.Sort((x, y) => x.FileName.CompareTo(y.FileName)); - return list; - } - private bool CheckTargetFrameworks(TextWriter textWriter) { if (!_data.IsUnitTestProject) -- GitLab