public DotNetVersion ExtractDotNetVersion(DotNetXMLDoc csProjXML) { var versionNode = csProjXML.SelectSingleNode(csProjXML.DocumentElement, "//TargetFrameworkVersion | //TargetFramework"); if (versionNode != null) { var prefixAndVersion = Regex.Match(versionNode.InnerText, @"(\D+)([\d|\.]+)"); if (prefixAndVersion.Groups.Count == 3) { var prefix = prefixAndVersion.Groups[1].Value; var version = prefixAndVersion.Groups[2].Value; if (prefix.StartsWith("netstandard")) { return(new DotNetVersion(DotNetType.Standard, Version.Parse(version))); } else if (prefix.StartsWith("netcore")) { return(new DotNetVersion(DotNetType.Core, Version.Parse(version))); } else { return(new DotNetVersion(DotNetType.Framework, Version.Parse(version))); } } } return(new DotNetVersion(DotNetType.Unknown, new Version(0, 0))); }
public PackagesConfig(VerifiedFile file, INugetReferenceReader nugetReader) { _packagesConfigFile = file; _xml = new DotNetXMLDoc(_packagesConfigFile); Packages = nugetReader.ExtractPackages(_xml).ToArray(); }
public IEnumerable <ProjectReference> ExtractProjectReferences(DotNetXMLDoc csProjXML) { foreach (XmlNode projNode in csProjXML.SelectNodes("//ProjectReference")) { var relativePath = projNode.Attributes["Include"].Value; yield return(new ProjectReference(csProjXML.File.Directory, ParseReferenceInclude(relativePath), relativePath)); } }
public Project(VerifiedFile csProjFile, IProjectReader projectReader) { _csProjFile = csProjFile; _xml = new DotNetXMLDoc(csProjFile); DotNetVersion = projectReader.ExtractDotNetVersion(_xml); ProjectReferences = projectReader.ExtractProjectReferences(_xml).ToArray(); FileReferences = projectReader.ExtractFileReferences(_xml).ToArray(); AssemblyName = projectReader.ExtractAssemblyName(_xml); }
public IEnumerable <Package> ExtractPackages(DotNetXMLDoc xmlDoc) { foreach (XmlNode packageNode in xmlDoc.SelectNodes("//package")) { string id = packageNode.Attributes["id"].Value; string version = packageNode.Attributes["version"].Value; string dotNetVersion = packageNode.Attributes["targetFramework"]?.Value; yield return(new Package(id, VersionWithSuffix.TryParse(version), DotNetVersion.TryParse(dotNetVersion))); } }
public IEnumerable <Reference> ExtractFileReferences(DotNetXMLDoc csProjXML) { foreach (XmlNode refNode in csProjXML.SelectNodes("//Reference")) { var include = refNode.Attributes["Include"].Value; var hintPath = csProjXML.SelectSingleNode(refNode, "HintPath"); if (hintPath != null) { yield return(new Reference(csProjXML.File.Directory, ParseReferenceInclude(include), hintPath?.InnerText ?? "")); } } }
public string ExtractAssemblyName(DotNetXMLDoc csProjXML) { return(string.Empty); }
public IEnumerable <ProjectReference> ExtractProjectReferences(DotNetXMLDoc csProjXML) { return(new ProjectReference[] { }); }
public IEnumerable <Reference> ExtractFileReferences(DotNetXMLDoc csProjXML) { return(new Reference[] { }); }
public DotNetVersion ExtractDotNetVersion(DotNetXMLDoc csProjXML) { return(new DotNetVersion(DotNetType.Framework, new Version(1, 0))); }
public string ExtractAssemblyName(DotNetXMLDoc csProjXML) { var assemblyNode = csProjXML.SelectSingleNode(csProjXML.DocumentElement, "//AssemblyName"); return(assemblyNode.InnerText); }