anchor.diff:  
       override x.OnFileAddedToProject(e) =
           base.OnFileAddedToProject(e)
  -        invalidateFiles(e)
  +        if not self.Loading then invalidateFiles(e)
   
       override x.OnFileRemovedFromProject(e) =
           base.OnFileRemovedFromProject(e)
  -        invalidateFiles(e)
  +        if not self.Loading then invalidateFiles(e)
   
       override x.OnFileRenamedInProject(e) =
           base.OnFileRenamedInProject(e)
  -        invalidateFiles(e)
  +        if not self.Loading then invalidateFiles(e)
   
       override x.OnFilePropertyChangedInProject(e) =
           base.OnFilePropertyChangedInProject(e)
  -        invalidateFiles(e)
  +        if not self.Loading then invalidateFiles(e)
   
       override x.OnReferenceAddedToProject(e) =
           base.OnReferenceAddedToProject(e)
  -        invalidateProjectFile()
  +        if not self.Loading then invalidateProjectFile()
   
       override x.OnReferenceRemovedFromProject(e) =
           base.OnReferenceRemovedFromProject(e)
  -        invalidateProjectFile()
  +        if not self.Loading then invalidateProjectFile()
   
       override x.OnDispose () =
  -        invalidateProjectFile()
  +        if not self.Loading then invalidateProjectFile()
   
           // FIXME: is it correct to do it every time a project is disposed?
  -        langServ.ClearLanguageServiceRootCachesAndCollectAndFinalizeAllTransients()
  +        //Should only be done on solution close
  +        //langServ.ClearLanguageServiceRootCachesAndCollectAndFinalizeAllTransients()
           base.OnDispose ()
  
positive.code:     inherit DotNetProject()
      // Keep the platforms combo of CodeGenerationPanelWidget in sync with this list
      let supportedPlatforms = [| "anycpu"; "x86"; "x64"; "itanium" |]
      
      let langServ = MDLanguageService.Instance
      
      let invalidateProjectFile() =
          try
              let options = langServ.GetProjectCheckerOptions(self.FileName.ToString(), [("Configuration", IdeApp.Workspace.ActiveConfigurationId)])
              langServ.InvalidateConfiguration(options)
              langServ.ClearProjectInfoCache()
          with ex -> LoggingService.LogError ("Could not invalidate configuration", ex)
      
      let invalidateFiles (args:#ProjectFileEventInfo seq) =
  
negative.code:     override x.OnCreateCompilationParameters(config : DotNetProjectConfiguration, kind : ConfigurationKind) : DotNetCompilerParameters = 
          let pars = new FSharpCompilerParameters()
          // Set up the default options
          if supportedPlatforms |> Array.exists (fun x -> x.Contains(config.Platform)) then pars.PlatformTarget <- config.Platform
          match kind with
          | ConfigurationKind.Debug -> 
              pars.AddDefineSymbol "DEBUG"
              pars.Optimize <- false
              pars.GenerateTailCalls <- false
          | ConfigurationKind.Release -> 
              pars.Optimize <- true
              pars.GenerateTailCalls <- true
          | _ -> ()
          //pars.DocumentationFile <- config.CompiledOutputName.FileNameWithoutExtension + ".xml"
          pars :> DotNetCompilerParameters
      
      override x.OnGetSupportedClrVersions() = 
  