private static DateTime GetStamp(IBSharpProject project) { project = project.Get <IBSharpProject>("_real_project") ?? project; var dirs = project.GetSourceDirectories().ToArray(); var stamp = dirs.SelectMany(_ => Directory.GetFiles(_, "*.bxls", SearchOption.AllDirectories)).Max(_ => File.GetLastWriteTime(_)); var csharp = Directory.GetFiles(project.GetCompileDirectory(), "*.cs", SearchOption.AllDirectories) .Where(_ => !_.Contains("\\obj\\")).ToArray(); if (0 != csharp.Length) { var _s = csharp.Max(_ => File.GetLastWriteTime(_)); if (_s > stamp) { stamp = _s; } } var xslt = Directory.GetFiles(project.GetCompileDirectory(), "*.xslt", SearchOption.AllDirectories) .Where(_ => !_.Contains("\\obj\\")).ToArray(); if (0 != xslt.Length) { var _s = xslt.Max(_ => File.GetLastWriteTime(_)); if (_s > stamp) { stamp = _s; } } return(stamp); }