| File: src\GeneratePlatformManifestEntriesFromFileList.cs | Web Access |
| Project: src\arcade\src\Microsoft.DotNet.SharedFramework.Sdk\Microsoft.DotNet.SharedFramework.Sdk.csproj (Microsoft.DotNet.SharedFramework.Sdk) |
// 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 Microsoft.DotNet.Build.Tasks; using Microsoft.Extensions.DependencyModel; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace Microsoft.DotNet.SharedFramework.Sdk { public class GeneratePlatformManifestEntriesFromFileList : BuildTask { [Required] public ITaskItem[] Files { get; set; } [Output] public ITaskItem[] PlatformManifestEntries { get; set; } public override bool Execute() { var entries = new List<PlatformManifestEntry>(); foreach (var file in Files) { entries.Add(new PlatformManifestEntry { Name = file.ItemSpec, AssemblyVersion = FileUtilities.GetAssemblyName(file.GetMetadata("OriginalFilePath"))?.Version.ToString() ?? string.Empty, FileVersion = FileUtilities.GetFileVersion(file.GetMetadata("OriginalFilePath"))?.ToString() ?? string.Empty }); } PlatformManifestEntries = entries.Select(entry => { var item = new TaskItem(entry.Name); item.SetMetadata("AssemblyVersion", entry.AssemblyVersion); item.SetMetadata("FileVersion", entry.FileVersion); return item; }).ToArray(); return true; } } }