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 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 XmlNode GetReferenceNode(string id) { return(_xml.SelectSingleNode("//Reference[contains(@Include,\"" + id + "\")]")); }
public string ExtractAssemblyName(DotNetXMLDoc csProjXML) { var assemblyNode = csProjXML.SelectSingleNode(csProjXML.DocumentElement, "//AssemblyName"); return(assemblyNode.InnerText); }
public XmlNode GetPackageNode(string id) { return(_xml.SelectSingleNode("//package[@id=\"" + id + "\"]")); }