private ScriptOptions AddMetadataReferences(ScriptOptions options, string pathToScript) { var targetDirectory = Path.GetDirectoryName(pathToScript); string pathToProjectFile = _scriptProjectProvider.CreateProject(targetDirectory); List <RuntimeDependency> runtimeDependencies = _runtimeDependencyResolver.GetRuntimeDependencies(pathToProjectFile).ToList(); var references = runtimeDependencies.Select(r => MetadataReference.CreateFromFile(r.Path)); AssemblyLoadContext.Default.Resolving += (context, assemblyName) => MapUnresolvedAssemblyToRuntimeLibrary(runtimeDependencies, context, assemblyName); return(options.WithReferences(references)); }
private IEnumerable <ProjectContext> TryCreateRuntimeContextsFromScriptFiles() { _logger.LogInformation($"Attempting to create runtime context from script files. Default target framework {_targetFrameWork.Value}"); try { var scriptProjectInfo = _scriptProjectProvider.CreateProject(_env.TargetDirectory, _targetFrameWork.Value); return(ProjectContext.CreateContextForEachTarget(Path.GetDirectoryName(scriptProjectInfo.PathToProjectJson))); } catch (Exception exception) { _logger.LogError(exception, "Unable to create runtime context from script files."); } return(null); }