示例#1
0
        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));
        }
示例#2
0
 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);
 }