anchor.diff:  let private getStringParam k (v : string)=
       match isNullOrEmpty v with
       | true -> None
  -    | false -> Some (k, v)
  -
  -let getBoolParam k (v : bool) =
  +    | false -> Some (k, sprintf "\"%s\"" v) //string escape
  +
  +let private getBoolParam k (v : bool) =
       match v with
       | true -> Some (k, String.Empty)
       | false -> None
   
  -let getIntParam k (v : int) =
  +let private getIntParam k (v : int) =
       Some(k, v.ToString())
   
  -let private serializeArgs args =
  +let private formatArgs args pre split delim =
       args
  +    |> Seq.filter Option.isSome
       |> Seq.map (function 
              | None -> ""
              | Some(k, v) -> 
  -               "/" + k + (if isNullOrEmpty v then ""
  -                          else ":" + v))
  -    |> separated " "
  -    
  +               pre + k + (if isNullOrEmpty v then ""
  +                          else sprintf "%s%s" split v))
  +    |> separated delim
  +
  +let private serializeArgs args =
  +    formatArgs args "/" "=" " "   
   
   let private getParamPairs (rh: RoundhouseParams) =
       let dbName = getStringParam "d" rh.DatabaseName
  
positive.code: let Roundhouse setParams = 
      let parameters = setParams RoundhouseDefaults
  
      
  
      //let args = sprintf "/d=%s /f=%s /s=%s /cs=%s /csa=%s /ct=%i /cta=%i /dt=%s /o=%s /vf=%s /vx=%s /r=%s /env=%s /cds=%s /rfp=%s /ad=%s /ra=%s /racd=%s /rb=%s /u=%s /rf=%s /fu=%s /vw=%s /sp=%s /ix=%s /p=%s %s %s %s %s %s %s" parameters.DatabaseName parameters.SqlFilesDirectory parameters.ServerDatabase parameters.ConnectionString parameters.ConnectionStringAdmin parameters.CommandTimeout parameters.CommandTimeoutAdmin parameters.DatabaseType parameters.OutputPath parameters.VersionFile parameters.VersionXPath parameters.RepositoryPath parameters.Environment parameters.CustomCreateScript parameters.RestoreFilePath parameters.AlterDatabaseFolderName parameters.RunAfterOtherAnyTimeScriptsFolderName parameters.RunAfterCreateDatabaseFolderName parameters.RunBeforeUpFolderName parameters.UpFolderName parameters.RunFirstAfterUpdateFolderName parameters.FunctionsFolderName parameters.ViewsFolderName parameters.SprocsFolderName parameters.IndexesFolderName parameters.PermissionsFolderName drop simple transaction restore silent warn
      let args = parameters |> getParamPairs |> serializeArgs
  
      traceStartTask "Roundhouse" args
  
negative.code:     let silent = getBoolParam "silent" rh.Silent
      let warn = getBoolParam "w" rh.WarnOnOneTimeScriptChanges
  
      [dbName;sqlFilesDir;server;connString;connStringAdmin;cmdTimeout;cmdTimeoutAdmin;dbType;outPath;versionFile;versionXPath;repoPath;env;customCreateScript;restoreFilePath;alterFolderPath;
      runAfterOtherTimeFolderPath;runAfterCreateFolderPath;runBeforeUpFolderPath;upFolderPath;runFirstAfterUpdateFolderPath;funcFolderPath;viewsFolderPath;sprocsFolderPath;indexFolderPath;
      permissionsFolderPath;drop;simple;transaction;restore;silent;warn;]
  
  
  /// This task to can be used to run [RoundhousE](http://projectroundhouse.org/) for database migrations.
  