File: ComputeManagedAssemblies.cs
Web Access
Project: src\src\tools\illink\src\ILLink.Tasks\ILLink.Tasks.csproj (ILLink.Tasks)
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
 
using System.Linq;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
 
namespace ILLink.Tasks
{
    public class ComputeManagedAssemblies : Task
    {
        /// <summary>
        ///   Paths to assemblies.
        /// </summary>
        [Required]
        public ITaskItem[] Assemblies { get; set; }
 
        /// <summary>
        ///   This will contain the output list of managed
        ///   assemblies. Metadata from the input parameter
        ///   Assemblies is preserved.
        /// </summary>
        [Output]
        public ITaskItem[] ManagedAssemblies { get; set; }
 
        public override bool Execute()
        {
            ManagedAssemblies = Assemblies
                .Where(f => Utils.IsManagedAssembly(f.ItemSpec))
                .ToArray();
            return true;
        }
    }
}