anchor.diff:        let dgSol = SerializationHelper.deserializeXML<DelegateSolution> xmlContent
   
         // Read the status and statecode of the entities and update them in crm
  -
         log.WriteLine(LogLevel.Verbose, @"Finding states of entities to be updated")
   
         // Find the source entities that have different code values than target
  
positive.code: 
        log.WriteLine(LogLevel.Verbose, "Synching plugins")
  
        // Sync Plugins
        let targetAsms, targetTypes, targetSteps, targetImgs = getPlugins p solution.Id log
  
        [|(imgLogicName,(dgSol.keepPluginImages, targetImgs))
          (stepLogicName,(dgSol.keepPluginSteps, targetSteps))
          (typeLogicName,(dgSol.keepPluginTypes, targetTypes))
          (asmLogicName,(dgSol.keepAssemblies, targetAsms))|]
        |> Array.iter(fun (ln, (source, target)) -> 
          let s = source |> Seq.map snd |> Set.ofSeq
          let t = target |> Seq.map snd |> Set.ofSeq
          let diff = t - s
          
          log.WriteLine(LogLevel.Verbose, sprintf "Found %d '%s' entities to be deleted " diff.Count ln)
          match diff.Count with
  
negative.code: 
      asmName, types, stepsName, images
  
    let deactivateBusinessRules p ln target (diff: Set<string>) log =
      match diff.Count with
      | 0 -> ()
      | _ -> 
        diff
        |> Set.toSeq
        |> subset target
        |> Seq.map( fun (x,_) ->
          CrmDataInternal.Entities.updateStateReq ln x 0 1 :> OrganizationRequest )
        |> Seq.toArray
        |> CrmDataInternal.CRUD.performAsBulkWithOutput p log
  
  
    // Stores entities statecode and statuscode in a seperate file to be
    // implemented on import
    let exportDGSolution org ac solutionName zipPath (log:ConsoleLogger) =
  