anchor.diff:      let defaultPackageSource = PackageSource "https://nuget.org/api/v2/"
       let packageSourceProvider = PackageSourceProvider (settings, [defaultPackageSource])
       let remoteRepository = packageSourceProvider.GetAggregate(PackageRepositoryFactory())
  -    let localRepository =
  -        match actionType with
  -        | Install -> InstallSharedPackageRepository(repositoryPath, projectName) :> SharedPackageRepository
  -        | Remove -> SharedPackageRepository repositoryPath
  +    let localRepository = SharedPackageRepository repositoryPath
       let logger = { new ILogger 
                           with 
                               member x.Log(level, message, parameters) = Console.WriteLine("[{0}] {1}", level.ToString(), String.Format(message, parameters))
  
positive.code:                          })
  
  let UpdateReferenceToSpecificVersion projectName packageId (version : SemanticVersion) =
      let pm = GetManager projectName Remove
      let existingPackage = pm.LocalRepository.FindPackage(packageId)
      pm.UninstallPackage(existingPackage, true, true)
      pm.InstallPackage(packageId, version, false, true)
  
  let UpdateReference projectName (packageId : string) =
      let pm = GetManager projectName Remove
      let existingPackage = pm.LocalRepository.FindPackage(packageId)
      pm.UninstallPackage(existingPackage, true, true)
      pm.InstallPackage packageId
  
  let InstallReferenceOfSpecificVersion projectName packageId (version : SemanticVersion) =
      let manager = GetManager projectName Install
      manager.InstallPackage(packageId, version, false, true)
  
  let InstallReference projectName packageId =
      let manager = GetManager projectName Install
      manager.InstallPackage packageId
  
  let RestoreReferences projectName =
      let manager = GetRawManager projectName Remove
      let packages = getRestorePackages projectName
      packages
      |> Seq.iter (fun p -> manager.InstallPackage(p.Id, p.Version, false, true))
  
  let RemoveReference projectName (packageId : string) =
      let manager = GetManager projectName Remove
      let restorePackages = getRestorePackages projectName
      let version = (Seq.find (fun p -> p.Id = packageId) restorePackages).Version
      let package = manager.LocalRepository.FindPackage(packageId, version)
  
negative.code:         Path.Combine(dir.FullName, "packages")
      | None -> Path.Combine(projectDir, "packages")
  
  let private GetRawManager (projectName : string) =
      if String.IsNullOrWhiteSpace projectName then raise <| ArgumentException("projectName cannot be empty")
      let projectDir = Path.GetFullPath <| IO.Path.GetDirectoryName projectName
      let settings = Settings.LoadDefaultSettings(PhysicalFileSystem projectDir)
      let repositoryPath = 
          match settings.GetRepositoryPath() with
  