public static int Main(string[] args) { //AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; //setup test environment var thread = System.Threading.Thread.CurrentThread; thread.CurrentUICulture = thread.CurrentCulture = new CultureInfo("en"); var cmdLine = new CommandLine(); var env = new CSRunner.Base.Environment(); env.CommandLine = cmdLine; env.Events = new Events(); env.Events.RunnerEvent += (RunnerEventType type, string message, object[] parameters) => { System.Console.WriteLine(type + ":" + string.Format(message, parameters)); }; cmdLine.Assembly = "Documents.Queue2";// project to compile cmdLine.Debug = true; // test scenarios // Here satellite assembly is loaded because all written to then files and assembly // receives its Location, and message is showing in English // OkScenario(env); // Case with problems, assemblies are only in memory and can't paired // Here message is not shown in English FailScenario(env);//Working with AppDomain.AssemblyResolve return(0); }
static void FailScenario(CSRunner.Base.Environment env) { var assembly = CSharpCompilerInMemory.Compile(env.CommandLine, (string errors, object[] parameters) => { System.Console.WriteLine(string.Format(errors, parameters)); }); var runner = assembly.ExportedTypes.Where(t => t.IsSubclassOf(typeof(Runner))).SingleOrDefault(); var runnerInstance = Activator.CreateInstance(runner, new[] { env }) as Runner; runnerInstance.Run(); }
public Queue(CSRunner.Base.Environment environment) : base(environment) { }