anchor.diff:      Exec(RootDirectory <!!> "PEVerify.exe", @"work\output\FlexLucene.dll")
   
   /// <summary>
  +/// Execute all smoke tests
  +/// </summary>
  +let runSmokeTests() = 
  +    !>>"Copy all required dll"
  +    loopFiles DllDirectory |> Seq.iter (fun f -> File.Copy(f, OutputDirectory <!!> Path.GetFileName(f)))
  +    !>>"Copy smoke test files"
  +    loopFiles SmokeTestArtifacts |> Seq.iter (fun f -> File.Copy(f, OutputDirectory <!!> Path.GetFileName(f)))
  +    !>>"Starting Smoke Tests"
  +    Exec(OutputDirectory <!!> "SmokeTests.exe", "")
  +
  +/// <summary>
   /// Tasks which needs to executed as part of the build process
   /// </summary>
   let tasks = 
  
positive.code: // ---------------------------------------------
  let RootDirectory = __SOURCE_DIRECTORY__
  let WorkDirectory = RootDirectory <!!> "Work" |> CreateAndEmptyDirectory
  let IkvmPath = sprintf @"%s\ikvm\ikvmc.exe" RootDirectory
  let VersionPatchPath = RootDirectory <!!> "verpatch.exe"
  let LibSrcDirectory = RootDirectory <!!> "Lib"
  
negative.code: let ServicesDirectory = MetaDirectory <!!> @"META-INF\services" |> CreateAndEmptyDirectory
  let LuceneDirectory = WorkDirectory <!!> "Lucene" |> CreateAndEmptyDirectory
  let OutputDirectory = WorkDirectory <!!> "Output" |> CreateAndEmptyDirectory
  let SmokeTestArtifacts = RootDirectory <!!> @"SmokeTests\SmokeTestArtifacts"
  
  // List of all the lucene jars which will be combined to form FlexLucene
  let LuceneJars = 
  