protected override void ExecuteCore()

in src/Tasks/Microsoft.NET.Build.Tasks/ParseTargetManifests.cs [25:69]


        protected override void ExecuteCore()
        {
            string[] targetManifestFileList = TargetManifestFiles?.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            if (targetManifestFileList != null && targetManifestFileList.Length > 0)
            {
                var runtimeStorePackages = new Dictionary<PackageIdentity, StringBuilder>();
                foreach (var manifestFile in targetManifestFileList)
                {
                    Log.LogMessage(MessageImportance.Low, string.Format(CultureInfo.CurrentCulture, Strings.ParsingFiles, manifestFile));
                    var packagesSpecified = StoreArtifactParser.Parse(manifestFile);
                    var targetManifestFileName = Path.GetFileName(manifestFile);

                    foreach (var pkg in packagesSpecified)
                    {
                        Log.LogMessage(MessageImportance.Low, string.Format(CultureInfo.CurrentCulture, Strings.PackageInfoLog, pkg.Id, pkg.Version));
                        StringBuilder fileList;
                        if (runtimeStorePackages.TryGetValue(pkg, out fileList))
                        {
                            fileList.Append($";{targetManifestFileName}");
                        }
                        else
                        {
                            runtimeStorePackages.Add(pkg, new StringBuilder(targetManifestFileName));
                        }
                    }
                }

                var resultPackages = new List<ITaskItem>();
                foreach (var storeEntry in runtimeStorePackages)
                {
                    string packageName = storeEntry.Key.Id;
                    string packageVersion = storeEntry.Key.Version.ToNormalizedString();

                    TaskItem item = new TaskItem($"{packageName}/{packageVersion}");
                    item.SetMetadata(MetadataKeys.PackageName, packageName);
                    item.SetMetadata(MetadataKeys.PackageVersion, packageVersion);
                    item.SetMetadata(MetadataKeys.RuntimeStoreManifestNames, storeEntry.Value.ToString());

                    resultPackages.Add(item);
                }

                RuntimeStorePackages = resultPackages.ToArray();
            }
        }