anchor.diff:          |> Seq.map(fun node -> Guid.Parse node.Value)
   
       // Fetch the entities of the views
  -
       savedQueryGuids
       |> Seq.map(fun guid -> CrmData.CRUD.retrieve p "savedquery" guid)
   
     // Retrievs the workflows defined in the solution
  -  let getWorkflows p solution log =
  +  let getWorkflows p solution =
       CrmDataInternal.Entities.retrieveWorkflows p solution
   
  +  let getWebresources p solution =
  +    CrmDataInternal.Entities.retrieveWebResources p solution
  +
  +  let getBusinessRules p solution =
  +    CrmDataInternal.Entities.retrieveWebResources p solution
  +
     // Retrievs the assemblies, types, active steps, and images of a solution
  -  let getPlugins p solution log =
  +  let getPluginsIds p solution =
       
       // Find all assemblies in the solution
       let assemblies = 
  
positive.code:     b |> Seq.filter(fun (_,z) -> 
        ((fun y -> y = z),a) ||> Seq.exists)
  
    // Fetches the entity of views in a packaged solution file from an exported 
    // solution
    let getViews p (xmlFile:string) log =
     
      // Parse the customization.xml and find all the nodes containing "savedquery"
      // under the node "SavedQueries"
  
negative.code:       stateCode: int
        statusCode: int }
  
    // Recording holding the states of entities and which plugins and webresources to keep
    // Note: the different plugin guids are not sure to be equal across environments
    // so the name is used to identify the different parts of the plugins
    type DelegateSolution =
  