public string CreateProjectForRepl(string code, string targetDirectory, string defaultTargetFramework = "net46") { var parseresult = _scriptParser.ParseFromCode(code); targetDirectory = Path.Combine(targetDirectory, "REPL"); var pathToProjectFile = GetPathToProjectFile(targetDirectory); var projectFile = new ProjectFile(); foreach (var packageReference in parseresult.PackageReferences) { projectFile.AddPackageReference(packageReference); } projectFile.SetTargetFramework(parseresult.TargetFramework ?? defaultTargetFramework); projectFile.Save(pathToProjectFile); _logger.Debug($"Project file saved to {pathToProjectFile}"); CopyNuGetConfigFile(targetDirectory, Path.GetDirectoryName(pathToProjectFile)); return(pathToProjectFile); }
public string CreateProjectForRepl(string code, string targetDirectory, string defaultTargetFramework = "net46") { var scriptFiles = _scriptFilesResolver.GetScriptFilesFromCode(code); targetDirectory = Path.Combine(targetDirectory, "interactive"); var parseResultFromCode = _scriptParser.ParseFromCode(code); var parseResultFromLoadedFiles = _scriptParser.ParseFromFiles(scriptFiles); var allPackageReferences = new HashSet <PackageReference>(); foreach (var packageReference in parseResultFromCode.PackageReferences) { allPackageReferences.Add(packageReference); } foreach (var packageReference in parseResultFromLoadedFiles.PackageReferences) { allPackageReferences.Add(packageReference); } targetDirectory = Path.Combine(targetDirectory, "interactive"); var pathToProjectFile = GetPathToProjectFile(targetDirectory); var projectFile = new ProjectFile(); foreach (var packageReference in allPackageReferences) { projectFile.PackageReferences.Add(packageReference); } projectFile.TargetFramework = parseResultFromCode.TargetFramework ?? defaultTargetFramework; projectFile.Save(pathToProjectFile); LogProjectFileInfo(pathToProjectFile); EvaluateAndGenerateNuGetConfigFile(targetDirectory, Path.GetDirectoryName(pathToProjectFile)); return(pathToProjectFile); }