protected void InjectFarmhandCoreClasses(string output, params string[] inputs) { RepackOptions options = new RepackOptions(); ILogger logger = new RepackLogger(); try { options.InputAssemblies = inputs; options.OutputFile = output; options.DebugInfo = true; options.SearchDirectories = new[] { Directory.GetCurrentDirectory() }; var repack = new ILRepack(options, logger); repack.Repack(); } catch (Exception ex) { Console.WriteLine($"FATAL ERROR: ILRepack: {ex.Message}"); throw new Exception("ILRepack Error", ex); // ignored } finally { if (options.PauseBeforeExit) { Console.WriteLine("Press Any Key To Continue"); Console.ReadKey(true); } } }
public void GivenAnEmptyOutputFile__OpenFile_LogLine__OpenReturnsFalse_LogDoesNotThrowError() { RepackLogger logger = new RepackLogger(new RepackOptions()); Assert.IsFalse(logger.Open("")); logger.Log("Hello"); }
public void GivenAnEmptyOutputFile__OpenFile_CloseFile__OpenReturnsFalse_ClosedDoesNotThrowError() { RepackLogger logger = new RepackLogger(new RepackOptions()); Assert.IsFalse(logger.Open("")); logger.Close(); }
public void GivenOutputFile__OpenFile_CloseFile_LogError__StreamIsOpened_StreamIsClosed_NoErrorIsThrown() { RepackLogger logger = new RepackLogger(new RepackOptions()); Assert.IsTrue(logger.Open("file.out")); logger.Close(); const string message = "Only written to the console. No error is thrown."; logger.Error(message); logger.Warn(message); logger.Verbose(message); logger.Info(message); }
public void GivenOutputFile__OpenFile_CloseFile_LogError__StreamIsOpened_StreamIsClosed_NoErrorIsThrown() { ILogger logger = new RepackLogger(); Assert.IsTrue(logger.Open("file.out")); logger.Close(); const string message = "Only written to the console. No erorr is thrown."; logger.ERROR(message); logger.WARN(message); logger.VERBOSE(message); logger.INFO(message); }
/// <summary> /// Injects Farmhand assemblies into the game's executable /// </summary> /// <param name="output"> /// The output path /// </param> /// <param name="inputs"> /// The assemblies to merge /// </param> /// <exception cref="Exception"> /// Throws an exception if ILRepack fails. /// </exception> protected void InjectFarmhandCoreClasses(string output, params string[] inputs) { var options = new RepackOptions(); ILogger logger = new RepackLogger(); try { options.InputAssemblies = string.IsNullOrEmpty(this.Options.AssemblyDirectory) ? inputs : inputs.Select( n => Path.IsPathRooted(n) ? n : Path.Combine(this.Options.AssemblyDirectory, n)).ToArray(); options.OutputFile = output; options.DebugInfo = true; options.SearchDirectories = string.IsNullOrEmpty(this.Options.AssemblyDirectory) ? new[] { Directory.GetCurrentDirectory() } : new[] { this.Options.AssemblyDirectory }; var repack = new ILRepack(options, logger); repack.Repack(); } catch (Exception ex) { Console.WriteLine($"FATAL ERROR: ILRepack: {ex.Message}"); throw new Exception("ILRepack Error", ex); } finally { if (options.PauseBeforeExit) { Console.WriteLine("Press Any Key To Continue"); Console.ReadKey(true); } } }