anchor.diff:  
           // push need pack to be explicitly called in advance
           "push" => recipe {
  -
  -            let! package_name = makePackageName ()
  +            let! version = getVersion()
   
               let! nuget_key = getEnv("NUGET_KEY")
               do! dotnet
                     [
                       "nuget"; "push"
  -                    "out" </> package_name
  +                    "out" </> makePackageName version
                       "--source"; "https://www.nuget.org/api/v2/package"
                       "--api-key"; nuget_key |> Option.defaultValue ""
                     ]
           }
       ]
   }
  -
  
positive.code:     (* Nuget publishing rules *)
      rules [
          "pack" => recipe {
              let! package_name = makePackageName ()
              do! need ["out" </> package_name]
          }
  
          "out/Xake.(ver:*).nupkg" ..> recipe {
  
negative.code: 
  let getVersion () = recipe {
      let! verVar = getVar("VER")
      let! verEnv = getEnv("VER")
      let ver = verVar |> Option.defaultValue (verEnv |> Option.defaultValue "0.0.1")
  
      let! verSuffix =
          getVar("SUFFIX")
          |> Recipe.map (
              function
              | None -> "-beta"
              | Some "" -> "" // this is release!
              | Some s -> "-" + s
              )
      return ver + verSuffix
  }
  
  let makePackageName = sprintf "Xake.%s.nupkg"
  
  let dotnet arglist = recipe {
      do! shell {
  