private string GetToolDepsFilePath( SingleProjectInfo toolLibrary, LockFile toolLockFile, string depsPathRoot) { var depsJsonPath = Path.Combine( depsPathRoot, toolLibrary.Name + FileNameSuffixes.DepsJson); EnsureToolJsonDepsFileExists(toolLockFile, depsJsonPath, toolLibrary); return(depsJsonPath); }
private CompilationLibrary GetProjectCompilationLibrary( SingleProjectInfo projectInfo, LockFile lockFile, LockFileTarget lockFileTarget, Dictionary <string, Dependency> dependencyLookup) { List <Dependency> dependencies = GetProjectDependencies(lockFile, lockFileTarget, dependencyLookup); return(new CompilationLibrary( type: "project", name: projectInfo.Name, version: projectInfo.Version, hash: string.Empty, assemblies: new[] { projectInfo.GetOutputName() }, dependencies: dependencies.ToArray(), serviceable: false)); }
// Need to unit test this, so public internal void GenerateDepsJsonFile( LockFile toolLockFile, string depsPath, SingleProjectInfo toolLibrary) { Reporter.Verbose.WriteLine($"Generating deps.json at: {depsPath}"); var dependencyContext = new DepsJsonBuilder() .Build(toolLibrary, null, toolLockFile, s_toolPackageFramework, null); var tempDepsFile = Path.GetTempFileName(); using (var fileStream = File.Open(tempDepsFile, FileMode.Open, FileAccess.Write)) { var dependencyContextWriter = new DependencyContextWriter(); dependencyContextWriter.Write(dependencyContext, fileStream); } try { File.Copy(tempDepsFile, depsPath); } catch (Exception e) { Reporter.Verbose.WriteLine($"unable to generate deps.json, it may have been already generated: {e.Message}"); } finally { try { File.Delete(tempDepsFile); } catch (Exception e2) { Reporter.Verbose.WriteLine($"unable to delete temporary deps.json file: {e2.Message}"); } } }
private LockFile GetToolLockFile( SingleProjectInfo toolLibrary, string nugetPackagesRoot) { var lockFilePath = GetToolLockFilePath(toolLibrary, nugetPackagesRoot); if (!File.Exists(lockFilePath)) { return(null); } LockFile lockFile = null; try { lockFile = new LockFileFormat().Read(lockFilePath); } catch (FileFormatException ex) { throw ex; } return(lockFile); }