private void Process(IEnumerable<String> binaryReferences
            , DependencyInfo dependencyInfo)
        {
            foreach (var fi in dependencyInfo.Dependencies)
            {
                var key = fi.FullName.ToLower();

                DependencyInfo referenceDependencyInfo;
                if (Projs.TryGetValue(key, out referenceDependencyInfo))
                {
                    Process(binaryReferences, dependencyInfo, referenceDependencyInfo);
                }
                else
                {
                    var logger = Logger.GetLogger(LogType.ResolvingError);

                    logger.Log("Resolving Error:");
                    logger.Log(dependencyInfo.Proj.DirectoryName, 1);
                    logger.Log(dependencyInfo.Proj.Name, 1);
                    logger.Log(fi.DirectoryName, 1);
                    logger.Log(fi.Name, 1);
                    logger.Log();
                }
            }
        }
        public void Process()
        {
            String          assemblyName;
            String          projectGuid;
            List <FileInfo> dependencies;

            using (ProjReader = new StreamReader(Proj.FullName))
            {
                ProcessStream(out assemblyName, out projectGuid, out dependencies);
            }

            if (assemblyName == null)
            {
                LogNoAssemblyName();
            }
            else if (projectGuid == null)
            {
                LogNoProjectGuid();
            }
            else
            {
                var di = new DependencyInfo(Proj, assemblyName, projectGuid, dependencies);

                var key = Proj.FullName.ToLower();

                Projs.Add(key, di);
            }
        }
        private void Process(IEnumerable<String> binaryReferences
            , DependencyInfo sourceDependencyInfo
            , DependencyInfo referenceDependencyInfo)
        {
            if (binaryReferences.Contains(referenceDependencyInfo.AssemblyName) == false)
            {
                var logger = Logger.GetLogger(LogType.UnnecessaryReference);

                logger.Log("Probable Unnecessary Project Reference:");
                logger.Log(Dll.DirectoryName, 1);
                logger.Log(Dll.Name, 1);
                logger.Log("From", 1);
                logger.Log(sourceDependencyInfo.Proj.DirectoryName, 2);
                logger.Log(sourceDependencyInfo.Proj.Name, 2);
                logger.Log("To", 1);
                logger.Log(referenceDependencyInfo.Proj.DirectoryName, 2);
                logger.Log(referenceDependencyInfo.Proj.Name, 2);
                logger.Log();
            }
        }