anchor.diff:          Guid : string
           Files : WiXFile seq
           ServiceControls : WiXServiceControl seq
  +        ServiceInstalls : WiXServiceInstall seq
       }
       member w.ToComponentRef() = generateComponentRef (fun f -> { f with Id = w.Id })
  -    override w.ToString() = sprintf "<Component Id=\"%s\" Guid=\"%s\">%s%s</Component>" 
  -                                w.Id w.Guid (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.Files) (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.ServiceControls)
  +    override w.ToString() = sprintf "<Component Id=\"%s\" Guid=\"%s\">%s%s%s</Component>" 
  +                                w.Id w.Guid 
  +                                (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.Files) 
  +                                (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.ServiceControls)
  +                                (Seq.fold(fun acc elem -> acc + elem.ToString()) "" w.ServiceInstalls)
   
   /// Defaults for component
   let WiXComponentDefaults =
  
positive.code:         Guid = "*"
          Files = []
          ServiceControls = []
      }
  
  /// Use this for generating single components
  
negative.code:     components 
          |> Seq.map(fun comp -> 
                          if fileFilter comp then
                              { Id = comp.Id; Guid = comp.Guid; Files = comp.Files; ServiceControls = Seq.append comp.ServiceControls serviceControls; ServiceInstalls = comp.ServiceInstalls }
                          else
                              comp)
  
  /// Use this to attach service installs to your components.
  let attachServiceInstallsToComponents (components : WiXComponent seq) fileFilter serviceInstalls = 
      components 
          |> Seq.map(fun comp -> 
                          if fileFilter comp then
                              { Id = comp.Id; Guid = comp.Guid; Files = comp.Files; ServiceControls = comp.ServiceControls; ServiceInstalls = Seq.append comp.ServiceInstalls serviceInstalls}
                          else
                              comp)
  
                              
  /// Creates recursive WiX directory and file tags from the given DirectoryInfo
  /// The function will create one component for each file [best practice](https://support.microsoft.com/de-de/kb/290997/en-us)
  