anchor.diff:          let document = XMLDoc documentContent // we create a copy and work immutable
           let node = 
               getCompileNodes document 
  -            |> List.filter (fun node -> node.Attributes.["Include"].InnerText = fileName) 
  +            |> List.filter (fun node -> getFileAttribute node = fileName) 
               |> Seq.last  // we remove the last one to make easier to remove duplicates
   
           node.ParentNode.RemoveChild node |> ignore
  
positive.code:     let getCompileNodes (document:XmlDocument) =         
          [for node in document.SelectNodes(compileNodesXPath,nsmgr) -> node]
  
      let getFileAttributes (document:XmlDocument) = 
          let xpath = compileNodesXPath + "/@Include"
          [for attr in document.SelectNodes(xpath,nsmgr) -> attr]
  
      let files = getFileAttributes document |> List.map (fun attr -> attr.InnerText)
      
      /// Read a Project from a FileName
      static member FromFile(projectFileName) = new ProjectFile(projectFileName,ReadFileAsString projectFileName)
  
      /// Saves the project file
      member x.Save() = document.Save(projectFileName)
  
      /// Add a file to the Compile nodes
      member x.AddFile fileName =        
  
negative.code: module Fake.MSBuild.ProjectSystem
  
  open Fake
  open System.Collections.Generic
  open System.Xml
  open System.Xml.Linq
  open XMLHelper
  