示例#1
0
        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;
        }
示例#2
0
        string ResolveI18nAssembly(DirectoryAssemblyResolver resolver, string name)
        {
            var assembly = resolver.Resolve(AssemblyNameReference.Parse(name));

            return(Path.GetFullPath(assembly.MainModule.FullyQualifiedName));
        }