public bool RemoveAssemblyResolveDir(string dir) { if (_resolveDirs.Contains(dir)) { _resolveDirs.Remove(dir); BaseAssemblyResolver bar = GlobalAssemblyResolver.Instance as BaseAssemblyResolver; if (bar != null) { bar.RemoveSearchDirectory(dir); } return(true); } return(false); }
public static void Main(string[] args) { bool showHelp = false; bool listDependenciesOnly = false; foreach (var s in assemblyResolver.GetSearchDirectories()) { assemblyResolver.RemoveSearchDirectory(s); } var p = new OptionSet() { { "a|assembly-search-directory=", "add a search directory into the assembly resolver", v => assemblyResolver.AddSearchDirectory(v) }, { "d|list-dependencies-only", "output a list of detected dependencies and exit", v => listDependenciesOnly = v != null }, { "k|key-pair-file=", "resign assembly with the key pair in file (.snk)", v => LoadKeyPairFile(v) }, { "v", "increase verbosity", v => { if (v != null) { ++verbosity; } } }, { "h|help", "show this message and exit", v => showHelp = v != null }, }; if (0 == args.Length) { TryHelp(); return; } List <string> assemblies; try { assemblies = p.Parse(args); } catch (OptionException e) { Error(e.Message); TryHelp(); return; } if (showHelp) { ShowHelp(p); return; } if (0 == assemblies.Count) { Error("No assembly names were given."); TryHelp(); return; } if (0 == assemblyResolver.GetSearchDirectories().Length) { assemblyResolver.AddSearchDirectory("."); } IEnumerable <AssemblyDefinition> dependendAssemblies; try { dependendAssemblies = FindDependendAssemblies(assemblies).ToList(); } catch (Exception exception) { Error("Unable find dependend assemblies: {0}", exception.ToString()); return; } if (listDependenciesOnly) { foreach (var a in dependendAssemblies) { Console.WriteLine(a.MainModule.FullyQualifiedName); } return; } foreach (var d in ProcessAssemblies(dependendAssemblies).ToList()) { try { WriteAssembly(d); } catch (Exception exception) { Error("Unable to write assembly: {0}", exception.ToString()); continue; } } }