void AddAssemblyReferences(DirectoryAssemblyResolver resolver, ICollection <string> assemblies, AssemblyDefinition assembly, bool topLevel) { var fqname = assembly.MainModule.FullyQualifiedName; var fullPath = Path.GetFullPath(fqname); // Don't repeat assemblies we've already done if (!topLevel && assemblies.Contains(fullPath)) { return; } Log.LogMessage(MessageImportance.Low, "{0}Adding assembly reference for {1}, recursively...", new string(' ', indent), assembly.Name); indent += 2; // Add this assembly if (!topLevel && assemblies.All(a => new AssemblyNameDefinition(a, null).Name != assembly.Name.Name)) { assemblies.Add(fullPath); } // Recurse into each referenced assembly foreach (AssemblyNameReference reference in assembly.MainModule.AssemblyReferences) { var reference_assembly = resolver.Resolve(reference); AddAssemblyReferences(resolver, assemblies, reference_assembly, false); } indent -= 2; }
string ResolveI18nAssembly(DirectoryAssemblyResolver resolver, string name) { var assembly = resolver.Resolve(AssemblyNameReference.Parse(name)); return(Path.GetFullPath(assembly.MainModule.FullyQualifiedName)); }