anchor.diff:  type NugetFrameworkReferences = 
       { FrameworkVersion : string
         References : NugetReferences }
  +
  +type NugetSymbolPackage =
  +    /// Do not build symbol packages
  +    | None = 0
  +    /// Build a symbol package using a project file, if provided
  +    | ProjectFile = 1
  +    /// Build a symbol package using the nuspec file
  +    | Nuspec = 2
   
   /// Nuget parameter type
   type NuGetParams = 
  
positive.code:     let parameters = NuGetDefaults() |> setParams
      try 
          let nuspecFile = createNuspecFile parameters nuspecFile
          packSymbols parameters
          pack parameters nuspecFile
          if parameters.Publish then 
              publish parameters
  
negative.code:         "-Properties " + (lst
                            |> List.map (fun p -> (fst p) + "=\"" + (snd p) + "\"")
                            |> String.concat ";")
  
  /// create package (including symbols package if enabled)
  let private pack parameters nuspecFile =
      let properties = propertiesParam parameters.Properties
      let outputPath = (FullName(parameters.OutputPath.TrimEnd('\\').TrimEnd('/')))
      let packageAnalysis = if parameters.NoPackageAnalysis then "-NoPackageAnalysis" else ""
  
      let execute args =
          let result =
              ExecProcess (fun info ->
                  info.FileName <- parameters.ToolPath
                  info.WorkingDirectory <- FullName parameters.WorkingDir
                  info.Arguments <- args) parameters.TimeOut
          if result <> 0 then failwithf "Error during NuGet package creation. %s %s" parameters.ToolPath args
  
      match parameters.SymbolPackage with
      | NugetSymbolPackage.ProjectFile ->
          if not (isNullOrEmpty parameters.ProjectFile) then
              sprintf "pack -Symbols -Version %s -OutputDirectory \"%s\" \"%s\" %s %s"
                  parameters.Version outputPath (FullName parameters.ProjectFile) packageAnalysis properties
              |> execute
          sprintf "pack -Version %s -OutputDirectory \"%s\" \"%s\" %s %s"
              parameters.Version outputPath (FullName nuspecFile) packageAnalysis properties
          |> execute
      | NugetSymbolPackage.Nuspec ->
          sprintf "pack -Symbols -Version %s -OutputDirectory \"%s\" \"%s\" %s %s"
              parameters.Version outputPath (FullName nuspecFile) packageAnalysis properties
          |> execute
      | _ ->
          sprintf "pack -Version %s -OutputDirectory \"%s\" \"%s\" %s %s"
              parameters.Version outputPath (FullName nuspecFile) packageAnalysis properties
          |> execute
      
  
  /// push package (and try again if something fails)
  let rec private publish parameters = 
  