Ejemplo n.º 1
0
        private void ParsePackagesConfigFile()
        {
            ValidationHelper.ThrowIfStringIsNullOrEmpty(ProjectInfo.Config.CSProjectFilePath);

            if (!ProjectInfo.Config.PackagesConfigExists)
            {
                return;
            }

            var packagesDoc = new XmlDocument();

            packagesDoc.Load(ProjectInfo.Config.PackagesConfigFilePath);

            var packagesXRoot = packagesDoc.DocumentElement;
            var packageNodes  = packagesXRoot.SelectNodes("//packages/package");

            foreach (XmlNode packageNode in packageNodes)
            {
                var idAttribute      = packageNode.Attributes["id"];
                var versionAttribute = packageNode.Attributes["version"];

                if (idAttribute != null && versionAttribute != null)
                {
                    ProjectInfo.Packages.Add(NuGetPackageDetails.Create(
                                                 idAttribute.Value,
                                                 versionAttribute.Value,
                                                 NuGetPackageLocation.PackagesConfigFile,
                                                 NuGetPackageType.NuGet));
                }
            }
        }
Ejemplo n.º 2
0
        private void ParseCSProjectFile()
        {
            var doc = new XmlDocument();

            doc.Load(ProjectInfo.Config.CSProjectFilePath);

            var xRoot = doc.DocumentElement;

            ProjectInfo.IsCoreProject = xRoot.HasAttribute("Sdk");

            var targetFrameworkNode = xRoot.SelectSingleNode(
                ProjectInfo.IsCoreProject
                ? "//PropertyGroup/TargetFramework"
                : "//PropertyGroup/TargetFrameworkVersion"
                );
            var targetFramework = targetFrameworkNode?.InnerText ?? "n/a";

            ProjectInfo.TargetFramework = targetFramework;

            var packageReferencesNodes = xRoot.SelectNodes("ItemGroup/PackageReference");

            foreach (XmlNode packageNode in packageReferencesNodes)
            {
                var includeAttribute = packageNode.Attributes["Include"];
                var versionAttribute = packageNode.Attributes["Version"];

                if (includeAttribute != null && versionAttribute != null)
                {
                    ProjectInfo.Packages.Add(NuGetPackageDetails.Create(
                                                 includeAttribute.Value,
                                                 versionAttribute.Value,
                                                 NuGetPackageLocation.CSProjectFile,
                                                 NuGetPackageType.NuGet));
                }
            }

            if (_options.IncludeCLITools && ProjectInfo.IsCoreProject)
            {
                var cliToolsReferencesNodes = xRoot.SelectNodes("ItemGroup/DotNetCliToolReference");
                foreach (XmlNode cliToolNode in cliToolsReferencesNodes)
                {
                    var includeAttribute = cliToolNode.Attributes["Include"];
                    var versionAttribute = cliToolNode.Attributes["Version"];

                    if (includeAttribute != null && versionAttribute != null)
                    {
                        ProjectInfo.Packages.Add(NuGetPackageDetails.Create(
                                                     includeAttribute.Value,
                                                     versionAttribute.Value,
                                                     NuGetPackageLocation.CSProjectFile,
                                                     NuGetPackageType.CLITool));
                    }
                }
            }
        }