public IReplExecutor Create(CShell.Framework.Services.IRepl repl, string workspaceDirectory) { if (scriptServices == null) { scriptServices = builder.Build(repl); } scriptServices.FileSystem.CurrentDirectory = workspaceDirectory; scriptServices.InstallationProvider.Initialize(); var replExecutor = new ReplExecutor( repl, scriptServices.ObjectSerializer, scriptServices.FileSystem, scriptServices.FilePreProcessor, scriptServices.Engine, scriptServices.PackageInstaller, scriptServices.PackageAssemblyResolver, scriptServices.Logger); var assemblies = scriptServices.AssemblyResolver.GetAssemblyPaths(scriptServices.FileSystem.CurrentDirectory); var scriptPacks = scriptServices.ScriptPackResolver.GetPacks(); replExecutor.Initialize(assemblies, scriptPacks); repl.Initialize(replExecutor); return replExecutor; }