/// <summary> /// Gets the included files. /// </summary> /// <param name="project">The project.</param> /// <returns></returns> private IList<VSIncludedFile> GetIncludedFiles(Microsoft.Build.Evaluation.Project project) { IList<VSIncludedFile> result = new List<VSIncludedFile>(); foreach (ProjectItem projectItem in project.AllEvaluatedItems) { if(projectItem.ItemType == INCLUDE_COMPILE) { VSIncludedFile included = new VSIncludedFile(); included.Include = projectItem.EvaluatedInclude; if(projectItem.HasMetadata(INCLUDE_LINK)) { included.IsLink = true; included.LinkTarget = projectItem.GetMetadataValue(INCLUDE_LINK); } result.Add(included); } } return result; }
/// <summary> /// Gets the included files. /// </summary> /// <returns></returns> private IList<VSIncludedFile> GetIncludedFiles() { XmlDocument xmlDocument = this.ProjectDocument; string xpath = GetXPath(@"Compile"); XmlNamespaceManager namespaceManager = GetNamespaceManager(xmlDocument); XmlNodeList nodeList = xmlDocument.SelectNodes(xpath, namespaceManager); List<VSIncludedFile> files = new List<VSIncludedFile>(); if (nodeList != null) { foreach (XmlNode node in nodeList) { string include = SelectAttributeValue(node, "Include"); bool isLink = false; string linkTarget = null; foreach (XmlNode childNode in node.ChildNodes) { if (childNode.Name == "Link") { isLink = true; linkTarget = childNode.InnerXml; } } VSIncludedFile file = new VSIncludedFile { Include = include, IsLink = isLink, LinkTarget = linkTarget }; files.Add(file); } } return files; }