anchor.diff:        ProjectFile:string;
         Dependencies: (string*string) list;
         PublishTrials: int;
  -      Publish:bool }
  +      Publish:bool;
  +      Properties: list<string*string>
  +       }
   
   /// NuGet default params  
   let NuGetDefaults() =
  
positive.code:       AccessKey = null
        NoPackageAnalysis = false
        PublishTrials = 5
        Publish = false}
  
  let RequireExactly version = sprintf "[%s]" version
  
  
negative.code:     parameters.OutputPath @@ (symbolsPackageFileName parameters) |> DeleteFile
  
  // create package
  let private pack parameters nuspecFile =
      let properties = 
          match parameters.Properties with
              | []    -> ""
              | lst   -> "-Properties " + 
                              (lst
                              |> List.map(fun p -> (fst p) + "=\"" + (snd p) + "\"" )
                              |> List.fold(fun state p ->  p + ";" + state) ""
                              |> (fun s -> s.TrimEnd(';')))
      let args = 
          sprintf "pack \"%s\" -Version %s -OutputDirectory \"%s\" %s %s" 
              (FullName nuspecFile)
              parameters.Version
              (FullName (parameters.OutputPath.TrimEnd('\\').TrimEnd('/')))
              (if parameters.NoPackageAnalysis then "-NoPackageAnalysis" else "")
              properties
      
      let result = 
          ExecProcess (fun info ->
              info.FileName <- parameters.ToolPath
  