public static ProjectDatum From(string projectFileName) { var result = new ProjectDatum(); try { result.ProjectName = Path.GetFileName(projectFileName); result.ProjectPath = Path.GetDirectoryName(projectFileName); var doc = XDocument.Load(projectFileName); var ns = doc.Root.Name.Namespace; var element = doc.Descendants(ns + "PropertyGroup").First(); result.AssemblyName = element.Element(ns + "AssemblyName").Value; result.Namespace = element.Element(ns + "RootNamespace").Value; var directoryInfo = Directory.GetParent(result.ProjectPath); while (directoryInfo != null) { result.IsNested = directoryInfo.GetFiles("*.??proj", SearchOption.TopDirectoryOnly).Any( fi => fi.Extension == ".csproj" || fi.Extension == ".vbproj"); if (result.IsNested) break; directoryInfo = directoryInfo.Parent; } return result; } catch (Exception ex) { return null; } }
public static ProjectDatum From(string projectFileName) { var result = new ProjectDatum(); try { result.ProjectName = Path.GetFileName(projectFileName); result.ProjectPath = Path.GetDirectoryName(projectFileName); var doc = XDocument.Load(projectFileName); var ns = doc.Root.Name.Namespace; var element = doc.Descendants(ns + "PropertyGroup").First(); result.AssemblyName = element.Element(ns + "AssemblyName").Value; result.Namespace = element.Element(ns + "RootNamespace").Value; return result; } catch (Exception ex) { return null; } }