anchor.diff:          buildVersion.infoVersion
   
       let filesToPatch = !! "Src/*/Properties/AssemblyInfo.*"
  +                       -- addBakExt "Src/*/Properties/*"
  +    
  +    // Backup the original file versions
  +    filesToPatch
  +    |> Seq.iter (fun f ->
  +        let bakFilePath = addBakExt f
  +        CopyFile bakFilePath f
  +
  +        printfn "Backed up %s to %s" f bakFilePath
  +    )
  +
       ReplaceAssemblyInfoVersionsBulk filesToPatch 
                                       (fun f -> { f with AssemblyVersion              = buildVersion.assemblyVersion
                                                          AssemblyFileVersion          = buildVersion.fileVersion
                                                          AssemblyInformationalVersion = buildVersion.infoVersion })
  +)
  +
  +Target "RestorePatchedAssemblyVersionFiles" (fun _ ->
  +    !! (addBakExt "Src/*/Properties/AssemblyInfo.*")
  +    |> Seq.iter (fun bakFile ->
  +        let originalPath = bakFile.Substring(0, bakFile.Length - bakFileExt.Length)
  +
  +        DeleteFile originalPath
  +        Rename originalPath bakFile
  +
  +        printfn "Restored %s to %s" bakFile originalPath
  +    )
   )
   
   let build target configuration =
  
positive.code:                     -- (nuGetOutputFolder @@ "AutoFixture.AutoFakeItEasy2.*" )
  let signKeyPath = FullName "Src/AutoFixture.snk"
  let solutionsToBuild = !! "Src/All.sln"
  
  type BuildVersionInfo = { assemblyVersion:string; fileVersion:string; infoVersion:string; nugetVersion:string }
  let calculateVersionFromGit buildNumber =
  
negative.code:                                       infoVersion = getBuildParamOrDefault "BuildInfoVersion" assemblyVer
                                        nugetVersion = getBuildParamOrDefault "BuildNugetVersion" assemblyVer }
  
  let addBakExt path = sprintf "%s%s" path bakFileExt
  
  Target "PatchAssemblyVersions" (fun _ ->
      printfn 
  