Exemple #1
0
        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)));
        }
Exemple #2
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 ?? ""));
                }
            }
        }
Exemple #3
0
 public XmlNode GetReferenceNode(string id)
 {
     return(_xml.SelectSingleNode("//Reference[contains(@Include,\"" + id + "\")]"));
 }
Exemple #4
0
        public string ExtractAssemblyName(DotNetXMLDoc csProjXML)
        {
            var assemblyNode = csProjXML.SelectSingleNode(csProjXML.DocumentElement, "//AssemblyName");

            return(assemblyNode.InnerText);
        }
Exemple #5
0
 public XmlNode GetPackageNode(string id)
 {
     return(_xml.SelectSingleNode("//package[@id=\"" + id + "\"]"));
 }