Ejemplo n.º 1
0
        public static PackagesFileData ReadFile(string packagesFilePath)
        {
            var packagesDocument = XDocument.Load(packagesFilePath);

            var result = new PackagesFileData();

            var xmlUsedPackages = packagesDocument.Element("packages").Elements("package");

            foreach (var xmlUsedPackage in xmlUsedPackages)
            {
                var packageId      = xmlUsedPackage.Attribute("id")?.Value ?? string.Empty;
                var packageVersion = xmlUsedPackage.Attribute("version")?.Value ?? string.Empty;

                if (string.IsNullOrWhiteSpace(packageId) || string.IsNullOrWhiteSpace(packageVersion))
                {
                    continue;
                }

                result.Packages.Add(new PackageInfo(packageId, packageVersion));
            }

            return(result);
        }
        private static Dictionary <string, PackagesFileData> GetProjectToPackagesMap(IEnumerable <string> projectFilePathes)
        {
            var projectsAndPackages = from projectPath in projectFilePathes
                                      let fileName = Path.GetFileName(projectPath)
                                                     let projectFolder = Path.GetDirectoryName(projectPath)
                                                                         let packagesFilePath = Path.Combine(projectFolder, "packages.config")
                                                                                                where File.Exists(projectPath) && File.Exists(packagesFilePath)
                                                                                                select new { ProjectPath = projectPath, PackageFile = PackagesFileData.ReadFile(packagesFilePath) };

            return(projectsAndPackages.ToDictionary(pp => pp.ProjectPath, pp => pp.PackageFile));
        }