private void ScanDependencies() { var foundByLongName = new HashSet<string>(); var foundByShortName = new HashSet<Tuple<string, string>>(); var notFound = new HashSet<string>(); foreach (var assemblyInfo in _assemblyInfos) { foreach (var referenceName in assemblyInfo.ReferencedNames) { var found = false; foreach (var otherAssemblyInfo in _assemblyInfos) { if (found) break; if (!MsilUtilities.EqualAssemblyNames(referenceName.FullName, otherAssemblyInfo.AssemblyName.FullName)) continue; foundByLongName.Add(referenceName.FullName); var reference = new AssemblyInfoReference { ReferencedAssemblyName = referenceName, Source = assemblyInfo, Target = otherAssemblyInfo, Invalid = false, }; assemblyInfo.References.Add(reference); otherAssemblyInfo.ReferencedBy.Add(reference); found = true; } foreach (var otherAssemblyInfo in _assemblyInfos) { if (found) break; if (!MsilUtilities.EqualAssemblyNames(referenceName.Name, otherAssemblyInfo.AssemblyName.Name)) continue; foundByShortName.Add(Tuple.Create(referenceName.FullName, otherAssemblyInfo.AssemblyName.FullName)); var reference = new AssemblyInfoReference { Source = assemblyInfo, Target = otherAssemblyInfo, Invalid = true, }; assemblyInfo.References.Add(reference); otherAssemblyInfo.ReferencedBy.Add(reference); found = true; } if (!found) { notFound.Add(referenceName.FullName); } } } foundByLongName.OrderBy(v => v).ToList() .ForEach(n => Log.Info("Assembly '{0}' has been successfully resolved", n)); foundByShortName.OrderBy(v => v.Item1).ToList() .ForEach(t => Log.Info("Assembly '{0}' has been resolved to '{1}' using short name", t.Item1, t.Item2)); notFound.OrderBy(v => v).ToList() .ForEach(n => Log.Warn("Assembly '{0}' has not been found", n)); }
private void ScanDependencies() { var foundByLongName = new HashSet <string>(); var foundByShortName = new HashSet <Tuple <string, string> >(); var notFound = new HashSet <string>(); foreach (var assemblyInfo in _assemblyInfos) { foreach (var referenceName in assemblyInfo.ReferencedNames) { var found = false; foreach (var otherAssemblyInfo in _assemblyInfos) { if (found) { break; } if (!MsilUtilities.EqualAssemblyNames(referenceName.FullName, otherAssemblyInfo.AssemblyName.FullName)) { continue; } foundByLongName.Add(referenceName.FullName); var reference = new AssemblyInfoReference { ReferencedAssemblyName = referenceName, Source = assemblyInfo, Target = otherAssemblyInfo, Invalid = false, }; assemblyInfo.References.Add(reference); otherAssemblyInfo.ReferencedBy.Add(reference); found = true; } foreach (var otherAssemblyInfo in _assemblyInfos) { if (found) { break; } if (!MsilUtilities.EqualAssemblyNames(referenceName.Name, otherAssemblyInfo.AssemblyName.Name)) { continue; } foundByShortName.Add(Tuple.Create(referenceName.FullName, otherAssemblyInfo.AssemblyName.FullName)); var reference = new AssemblyInfoReference { Source = assemblyInfo, Target = otherAssemblyInfo, Invalid = true, }; assemblyInfo.References.Add(reference); otherAssemblyInfo.ReferencedBy.Add(reference); found = true; } if (!found) { notFound.Add(referenceName.FullName); } } } foundByLongName.OrderBy(v => v).ToList() .ForEach(n => Log.Info("Assembly '{0}' has been successfully resolved", n)); foundByShortName.OrderBy(v => v.Item1).ToList() .ForEach(t => Log.Info("Assembly '{0}' has been resolved to '{1}' using short name", t.Item1, t.Item2)); notFound.OrderBy(v => v).ToList() .ForEach(n => Log.Warn("Assembly '{0}' has not been found", n)); }