MSBuildProject LoadProject(FilePath fileName) { fileName = fileName.CanonicalPath; lock (loadedProjects) { LoadedProjectInfo pi; if (loadedProjects.TryGetValue(fileName, out pi)) { pi.ReferenceCount++; var lastWriteTime = File.GetLastWriteTime(fileName); if (pi.LastWriteTime != lastWriteTime) { pi.LastWriteTime = lastWriteTime; pi.Project.Load(fileName, new MSBuildXmlReader { ForEvaluation = true }); } return(pi.Project); } MSBuildProject p = new MSBuildProject(EngineManager); p.Load(fileName, new MSBuildXmlReader { ForEvaluation = true }); loadedProjects [fileName] = new LoadedProjectInfo { Project = p, LastWriteTime = File.GetLastWriteTime(fileName) }; //Console.WriteLine ("Loaded: " + fileName); return(p); } }
protected override ProjectFile CreateProjectFile(LoadedProjectInfo info) { return(new VisualBasicProjectFile(this, info.Project, info.ErrorMessage)); }
protected abstract ProjectFile CreateProjectFile(LoadedProjectInfo info);
MSBuildProject LoadProject (FilePath fileName) { fileName = fileName.CanonicalPath; lock (loadedProjects) { LoadedProjectInfo pi; if (loadedProjects.TryGetValue (fileName, out pi)) { pi.ReferenceCount++; return pi.Project; } MSBuildProject p = new MSBuildProject (EngineManager); p.Load (fileName, new MSBuildXmlReader { ForEvaluation = true }); loadedProjects [fileName] = new LoadedProjectInfo { Project = p }; //Console.WriteLine ("Loaded: " + fileName); return p; } }
protected override ProjectFile CreateProjectFile(LoadedProjectInfo info) { return new CSharpProjectFile(this, info.Project, info.ErrorMessage); }