Captain LoadTest had the same issue in 2005, and developed a
NAnt script to parse VS.Net database project files, which is a nice idea - but I really wanted to access the 'tree' of scripts from C#.
Thankfully, the open-source project AnkhSVN (which integrates the Subversion source control tool into Visual Studio) has exactly the code needed: ParsedSolution.cs and ParsedSolutionItem.cs.
I commented out some code ('context') and added this method, and that pretty much worked. Make sure you check the licence before using...
/// Borrows code from the solution parser to JUST parse Database Project Files
/// <param name="projectFileName">The full path to a *.DBP file</param>
public static ParsedSolutionItem OpenDatabaseProject(string projectFileName)
string projectFile = projectFileName; //GetProjectFile(projectFileName);
ParsedSolutionItem project = new ParsedSolutionItem();
project.Name = "Database"; //projectName;
project.FileName = projectFile;
using (StreamReader reader = new StreamReader(projectFile))
string extension = Path.GetExtension(projectFile);
throw new ApplicationException("Trying to parse unknown project of type " + extension);