anchor.diff:      |> appendIfNotNullOrEmpty parameters.Source "/Source="
       |> appendIfNotNullOrEmpty parameters.Output "/Output="
       |> appendIfNotNullOrEmpty (parameters.ReportType.ToString()) "/ReportType="
  +    |> appendWithoutQuotes parameters.CustomParameters
       |> toText
   
   
  
positive.code:     |> appendIfNotNullOrEmpty parameters.TargetWorkingDir "/TargetWorkingDir="
      |> appendIfNotNullOrEmpty parameters.Filters "/Filters="
      |> appendIfNotNullOrEmpty parameters.Output "/Output="
      |> toText
  
  let buildDotCoverMergeArgs (parameters:DotCoverMergeParams) =
  
negative.code:       TargetArguments = ""
        TargetWorkingDir = ""
        Output = "DotCover.snapshot"
        Filters = "" 
        CustomParameters = "" }
  
  type DotCoverMergeParams = 
      { ToolPath: string
        WorkingDir: string
        Source: string list
        Output: string
        TempDir: string
        CustomParameters: string }
  
  let DotCoverMergeDefaults =
       { ToolPath = findToolInSubPath "dotcover.exe" (currentDirectory @@ "tools" @@ "DotCover")
         WorkingDir = ""
         Source = []
         Output = "DotCover.snapshot"
         TempDir = ""
         CustomParameters = "" }
  
  type DotCoverReportParams = 
      { ToolPath: string
        WorkingDir: string
        Source: string
        Output: string
        ReportType: DotCoverReportType
        CustomParameters: string }
        
  let DotCoverReportDefaults : DotCoverReportParams =
       { ToolPath = findToolInSubPath "dotcover.exe" (currentDirectory @@ "tools" @@ "DotCover")
         WorkingDir = ""
         Source = ""
         Output = "DotCover.xml"
         ReportType = DotCoverReportType.Xml
         CustomParameters = "" }
  
  let buildDotCoverArgs parameters =
      new StringBuilder()
  