anchor.diff:  
     let getDefaultInteractive() =
   
  -    let runtime = IdeApp.Preferences.DefaultTargetRuntime
  +    let runtime = MonoDevelop.Ide.IdeApp.Preferences.DefaultTargetRuntime
       let framework = getDefaultTargetFramework runtime
   
       match getEnvironmentToolPath runtime framework [|""; ".exe"; ".bat" |] "fsharpi" with
  
positive.code:   
    module Project =
                                      
        let isPortable (project: DotNetProject) =
          not (String.IsNullOrEmpty project.TargetFramework.Id.Profile)
        
        let getPortableReferences (project: DotNetProject) configSelector = 
          let portableReferences =
              // create a new target framework  moniker, the default one is incorrect for portable unless the project type is PortableDotnetProject
              // which has the default moniker profile of ".NETPortable" rather than ".NETFramework".  We cant use a PortableDotnetProject as this 
  
negative.code:         generateCompilerOptions (proj, fsconfig, None, getTargetFramework projConfig.TargetFramework.Id, config, false) |> Array.ofList
  
    let getDefineSymbols (fileName:string) (project: MonoDevelop.Projects.Project option) =
      [ let workspace = MonoDevelop.Ide.IdeApp.Workspace
        if workspace = null then
            if (fileName.EndsWith(".fsx") || fileName.EndsWith(".fsscript")) then
                yield "INTERACTIVE"
            else
                yield "COMPILED"
        match project with
        | Some p -> match p.GetConfiguration(workspace.ActiveConfiguration) with
                    | :? MonoDevelop.Projects.DotNetProjectConfiguration as configuration ->
                        for s in configuration.GetDefineSymbols() do
                            yield s
                    | _ -> ()
        | None -> ()]
  