anchor.diff:  "Restore" ==> "Compile"
   
   "Restore" ==> 
  +    "CodeGenerator" ==>
       "Compile" ==>
       "Default"
   
  -"Restore" ==> "Compile40"
  -"Restore" ==> "Compile45"
  +"Restore" ==> 
  +    "CodeGenerator"
  +    "Compile40"
  +
  +"Restore" ==> 
  +    "CodeGenerator"
  +    "Compile45"
   
   let knownPackages = 
       Set.ofList [
  
positive.code:             | Some accessKey ->
                  try
                      for id in knownPackages do
                          NuGet (fun p -> 
                              { p with OutputPath = "Bin"; 
                                       Version = tag; 
                                       ReleaseNotes = releaseNotes; 
                                       Dependencies = p.Dependencies |> List.map (fun (id,version) -> if Set.contains id knownPackages then (id, tag) else (id,version)) 
                                       AccessKey = accessKey
                                       Publish = true
                              }) (sprintf "bin/%s.nuspec" id)
                  with e ->
                      ()
              | None ->
  
negative.code:     DeleteDir (Path.Combine("Bin", "Debug"))
  )
  
  Target "CodeGenerator" (fun () ->
      MSBuildRelease "Bin/Release" "Build" (!!"src/**/CodeGenerator.csproj") |> ignore
  )
  
  
  Target "Compile40" (fun () ->
      MSBuild "Bin/net40" "Build" ["Configuration", "Release 4.0"] net40 |> ignore
  )
  