anchor.diff:  
           new ProjectFile(projectFileName,document.OuterXml)
   
  +    /// Removes a file from the Content nodes
  +    member x.RemoveContentFile fileName =        
  +        let document = XMLDoc documentContent // we create a copy and work immutable
  +        let node = 
  +            getContentNodes document 
  +            |> 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
  +
  +        new ProjectFile(projectFileName,document.OuterXml)
  +
       /// All files which are in "Compile" sections
       member x.Files = getCompileNodes document |> List.map getFileAttribute
  +    
  +        /// All files which are in "Content" sections
  +    member x.ContentFiles = getContentNodes document |> List.map getFileAttribute
   
       /// Finds duplicate files which are in "Compile" sections
       member this.FindDuplicateFiles() = 
  
positive.code:     member x.AddFile fileName =        
          let document = XMLDoc documentContent // we create a copy and work immutable
          let node = getCompileNodes document |> Seq.last
          let newNode = node.CloneNode(false) :?> XmlElement
          newNode.SetAttribute("Include",fileName)
          
  
negative.code:     let getCompileNodes (document:XmlDocument) =         
          [for node in document.SelectNodes(compileNodesXPath,nsmgr) -> node]
  
      let contentNodesXPath = "/default:Project/default:ItemGroup/default:Content"
      let getContentNodes (document:XmlDocument) =         
          [for node in document.SelectNodes(contentNodesXPath,nsmgr) -> node]
  
      let getFileAttribute (node:XmlNode) = node.Attributes.["Include"].InnerText
  
      /// Read a Project from a FileName
  