protected virtual IAssemblyResolver GetResolver(string assemblyFile, IReadOnlyList <string> references) { var resolver = new KnownReferencesAssemblyResolver(); if (!File.Exists(assemblyFile)) { _log.Log(GenericErrorRule, $"Target not found: '{assemblyFile}'"); } else { resolver.AddSearchDirectory(Path.GetDirectoryName(assemblyFile)); } foreach (var refr in references) { if (!File.Exists(refr)) { _log.Log(GenericErrorRule, $"Reference not found: '{refr}'"); } else { resolver.AddReference(refr); } } return(resolver); }
public int Execute(IReadOnlyList <string> args) { if (args.Count == 0) { ShowHelp(); return(-1); } var filename = args[0]; var optimize = args[1] == "-o"; var refsStart = optimize ? 2 : 1; var references = new ArraySegment <string>(args.ToArray(), refsStart, args.Count - refsStart); if (!File.Exists(filename)) { ShowHelp($"File {filename} does not exist."); return(1); } var log = new ConsoleLogger(); var processor = CreateProcessor(log); var resolver = new KnownReferencesAssemblyResolver(); resolver.AddSearchDirectory(Path.GetDirectoryName(filename)); references.ToList().ForEach(resolver.AddReference); try { processor.Process(filename, resolver, optimize); } catch (Exception e) { log.LogError(CompilationMessage.From(e.ToString())); } return(log.IsErrorThrown ? 1 : 0); }