public ActionResult Execute() { var logger = new MessageLogger(messageWriter); var referencedAssemblies = configuration.ReferencedAssemblies ?? Enumerable.Empty <string>(); var assemblyResolver = new AssemblyResolver(referencedAssemblies, logger); var context = new ProcessorContext { Configuration = configuration, ApplicationDirectory = Path.GetDirectoryName(GetType().Assembly.Location), Logger = logger, Language = WeavingHelper.ParseLanguage(configuration.ProjectType), AssemblyResolver = assemblyResolver, MetadataResolver = new MetadataResolver(assemblyResolver), }; context.InputFile = FileHelper.ExpandPath(configuration.InputFile); context.OutputFile = FileHelper.ExpandPath(configuration.OutputFile); if (string.IsNullOrEmpty(context.OutputFile)) { context.OutputFile = context.InputFile; } using (context) { foreach (var stage in GetStages()) { var stageResult = ExecuteStage(context, stage); if (stageResult != ActionResult.Success) { return(stageResult); } } } return(ActionResult.Success); }
public AssemblyResolver(IEnumerable <string> referencedAssemblies, MessageLogger logger) { if (referencedAssemblies == null) { throw new ArgumentNullException("referencedAssemblies"); } if (logger == null) { throw new ArgumentNullException("logger"); } this.logger = logger; foreach (var file in referencedAssemblies) { var name = Path.GetFileNameWithoutExtension(file); if (name != null && File.Exists(file)) { assemblyFiles.Add(name, file); } else { logger.Write(MessageCode.WarningReferencedAssemblyFileIsNotFound, file); } } this.defaultAssemblyResolver = new DefaultAssemblyResolver(); }