Example #1
0
        private static void OutputDependencyDifferences(ILogger logger, IEnumerable <ProjectNugetsGrouping> projects)
        {
            var comparer         = new ProjectsNugetsComparer();
            var nugetDifferences = comparer.Compare(projects);

            foreach (var difference in nugetDifferences)
            {
                if (difference.TargetFrameworkDifferences.Count > 0)
                {
                    logger.Information("{Package} has different frameworks targetted {TargetFrameworks} across different projects"
                                       , difference.PackageName
                                       , difference.TargetFrameworkDifferences.Select(targetFrameworkDifference => targetFrameworkDifference.TargetFramework));

                    foreach (var targetFrameworkDifference in difference.TargetFrameworkDifferences)
                    {
                        logger.Information("{Package} {TargetFramework} referenced in projects {Projects}",
                                           difference.PackageName,
                                           targetFrameworkDifference.TargetFramework,
                                           targetFrameworkDifference.ProjectNames);
                    }
                }

                if (difference.VersionDifferences.Count > 0)
                {
                    logger.Information("{Package} has multiple versions {Versions} referenced in different projects"
                                       , difference.PackageName
                                       , difference.VersionDifferences.Select(versionDifference => versionDifference.Version));

                    foreach (var versionDifference in difference.VersionDifferences)
                    {
                        logger.Information("{Package} {Version} referenced in projects {Projects}",
                                           difference.PackageName,
                                           versionDifference.Version,
                                           versionDifference.ProjectNames);
                    }
                }
            }
        }
 public ProjectsNugetsComparerTests()
 {
     Target = new ProjectsNugetsComparer();
 }