private static CustomProjectFile[] GetNetFrameworkMSBuildProjects(XDocument document, XNamespace ns, DirectoryPath rootPath) { return((from project in document.Elements(ns + ProjectXElement.Project) from itemGroup in project.Elements(ns + ProjectXElement.ItemGroup) from element in itemGroup.Elements() where element.Name != ns + ProjectXElement.Reference && element.Name != ns + ProjectXElement.Import && element.Name != ns + ProjectXElement.BootstrapperPackage && element.Name != ns + ProjectXElement.ProjectReference && element.Name != ns + ProjectXElement.Service from include in element.Attributes("Include") let value = include.Value where !string.IsNullOrEmpty(value) let filePath = rootPath.CombineWithProjectPath(value) select new CustomProjectFile { FilePath = filePath, RelativePath = value, Compile = element.Name == ns + ProjectXElement.Compile }).ToArray()); }