public static IEnumerable <AssemblyDefinition> ResolveAssemblyReferences(IAssemblyResolver resolver, IEnumerable <AssemblyNameReference> assemblyReferences)
 {
     return(from reference in assemblyReferences
            select MonoAssemblyStripping.ResolveAssemblyReference(resolver, reference) into a
                where a != null
            select a);
 }
        public static IEnumerable <AssemblyDefinition> CollectAllAssemblies(string librariesFolder, RuntimeClassRegistry usedClasses)
        {
            DefaultAssemblyResolver resolver = new DefaultAssemblyResolver();

            resolver.RemoveSearchDirectory(".");
            resolver.RemoveSearchDirectory("bin");
            resolver.AddSearchDirectory(librariesFolder);
            IEnumerable <AssemblyNameReference> source = from s in usedClasses.GetUserAssemblies()
                                                         where usedClasses.IsDLLUsed(s)
                                                         select s into file
                                                         select AssemblyNameReference.Parse(Path.GetFileNameWithoutExtension(file));

            return(MonoAssemblyStripping.CollectAssembliesRecursive(from dll in source
                                                                    select MonoAssemblyStripping.ResolveAssemblyReference(resolver, dll) into a
                                                                    where a != null
                                                                    select a));
        }