Ejemplo n.º 1
0
        private string GetToolDepsFilePath(
            SingleProjectInfo toolLibrary,
            LockFile toolLockFile,
            string depsPathRoot)
        {
            var depsJsonPath = Path.Combine(
                depsPathRoot,
                toolLibrary.Name + FileNameSuffixes.DepsJson);

            EnsureToolJsonDepsFileExists(toolLockFile, depsJsonPath, toolLibrary);

            return(depsJsonPath);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        // 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}");
                }
            }
        }
Ejemplo n.º 4
0
        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);
        }