anchor.diff:              | SinglePlatform t -> Some t
               | _ -> None)
   
  +
  +type AnalyzerLanguage = Any | CSharp | FSharp | VisualBasic
  +    with
  +        static member FromDirectoryName(str : string) =
  +            match str with
  +            | "cs" -> CSharp
  +            | "vb" -> VisualBasic
  +            | "fs" -> FSharp
  +            | _ -> Any
  +
  +        static member FromDirectory(dir : DirectoryInfo) =
  +            AnalyzerLanguage.FromDirectoryName(dir.Name)
  +
  +type AnalyzerLib =
  +    {
  +        /// Path of the analyzer dll
  +        Path : string
  +        /// Target language for the analyzer
  +        Language : AnalyzerLanguage }
  +
  +    static member FromFile(file : FileInfo) =
  +        {
  +            Path = file.FullName
  +            Language = AnalyzerLanguage.FromDirectory(file.Directory)
  +        }
  +
   type InstallModel = 
       { PackageName : PackageName
         PackageVersion : SemVerInfo
         ReferenceFileFolders : LibFolder list
         TargetsFileFolders : LibFolder list
  -      AnalyzerFileFolders : LibFolder list}
  +      Analyzers: AnalyzerLib list}
   
       static member EmptyModel(packageName, packageVersion) : InstallModel = 
           { PackageName = packageName
             PackageVersion = packageVersion
             ReferenceFileFolders = []
             TargetsFileFolders = [] 
  -          AnalyzerFileFolders = [] }
  +          Analyzers = [] }
       
       member this.GetLibReferences(target : TargetProfile) = 
           match Seq.tryFind (fun lib -> Seq.exists (fun t -> t = target) lib.Targets) this.ReferenceFileFolders with
  
positive.code:         if not install then this else
          
          { this with ReferenceFileFolders = this.AddFileToFolder(path, file, this.ReferenceFileFolders, (fun f -> f.AddReference)) }
  
      member this.AddAnalyzerFile(path : LibFolder, file : string) : InstallModel =
          { this with AnalyzerFileFolders = this.AddFileToFolder(path, file, this.AnalyzerFileFolders, (fun f -> f.AddAnalyzer)) }   
  
      member this.AddTargetsFile(path : LibFolder, file : string) : InstallModel =   
          { this with TargetsFileFolders = this.AddFileToFolder(path, file, this.TargetsFileFolders, (fun f -> f.AddTargetsFile)) }     
  
negative.code:               |> Set.ofList)
  
      member this.RemoveIfCompletelyEmpty() = 
          if Set.isEmpty (this.GetFrameworkAssembliesLazy.Force()) && Set.isEmpty (this.GetLibReferencesLazy.Force()) && Set.isEmpty (this.GetTargetsFilesLazy.Force()) && List.isEmpty this.Analyzers then
              InstallModel.EmptyModel(this.PackageName,this.PackageVersion)
          else
              this
  