| File: GetInboxFrameworks.cs | Web Access |
| Project: src\arcade\src\Microsoft.DotNet.Build.Tasks.Packaging\src\Microsoft.DotNet.Build.Tasks.Packaging.csproj (Microsoft.DotNet.Build.Tasks.Packaging) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using System; using System.IO; using System.Linq; namespace Microsoft.DotNet.Build.Tasks.Packaging { public class GetInboxFrameworks : BuildTask { [Required] public ITaskItem[] PackageIndexes { get; set; } [Required] public string AssemblyName { get; set; } public string AssemblyVersion { get; set; } [Output] public string[] InboxFrameworks { get; set; } public override bool Execute() { if (PackageIndexes == null && PackageIndexes.Length == 0) { Log.LogError("PackageIndexes argument must be specified"); return false; } if (String.IsNullOrEmpty(AssemblyName)) { Log.LogError("AssemblyName argument must be specified"); return false; } Log.LogMessage(LogImportance.Low, "Determining inbox frameworks for {0}, {1}", AssemblyName, AssemblyVersion); var index = PackageIndex.Load(PackageIndexes.Select(pi => pi.GetMetadata("FullPath"))); InboxFrameworks = index.GetInboxFrameworks(AssemblyName, AssemblyVersion).Select(fx => fx.GetShortFolderName()).ToArray(); return !Log.HasLoggedErrors; } } }