using System; using System.IO; using System.Xml; using System.Xml.Linq; using System.Linq; using System.Reflection; using System.Collections.Generic; using Microsoft.Build.Utilities; // Task using Microsoft.Build.Framework; // MessageImportance using Microsoft.NET.Build.Tasks; // LockFileCache using NuGet.ProjectModel; // LockFileTargetLibrary using NuGet.Frameworks; // NuGetFramework.Parse(targetframework) using Mono.Cecil; namespace ILLink.Tasks { public class ComputeManagedAssemblies : Task { /// /// Paths to assemblies. /// [Required] public ITaskItem[] Assemblies { get; set; } /// /// This will contain the output list of managed /// assemblies. Metadata from the input parameter /// Assemblies is preserved. /// [Output] public ITaskItem[] ManagedAssemblies { get; set; } public override bool Execute() { var managedAssemblies = new List(); foreach (var f in Assemblies) { if (Utils.IsManagedAssembly(f.ItemSpec)) { managedAssemblies.Add(f); } } ManagedAssemblies = managedAssemblies.ToArray(); return true; } } }