static void Main(string[] args) { Console.WriteLine("Hello World!"); var target = new Target { RootPath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Root", BasePath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Base", ModDirectory = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Mods", Mods = new[] { new Mod { Description = "Mod1", ModPath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Mods\Mod1", Order = 1, Name = "Mod1", RootPath = "Layers", Links = new[] { new Link { ModPath = "Layer1", TargetPath = "Layer" } } } }, OverlayPath = @"C:\Users\ibuki\source\repos\ModLinker\ModLinker.Cli\TestDir\Overlay" }; var provider = new DirectoryLayerProvider(); var manager = new LayerService(new[] { new DirectoryLayerProvider() }); if (args.Length < 2) { Console.CancelKeyPress += (sender, eventArgs) => manager.Dispose(); ShowFiles(manager); while (Console.Read() != 'q') { ; } } else { var op = new ModLinkerOperation(manager); op.Mount(target.RootPath); } }