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)); } } }
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)); } } } }