private static void LoadItems( ProjectAssets projectAssets, Dictionary <string, TargetItemAssets> map, TargetItemAssets item, HashSet <string> compileItems, HashSet <TargetItemAssets> loaded, Func <TargetItemAssets, IEnumerable <string> > itemsGetter) { loaded.Add(item); if (item.Dependencies != null) { foreach (var dependency in item.Dependencies) { // var depItem = map[$"{dependency.Key}/{dependency.Value}"]; var depItem = map[$"{dependency.Key}"]; if (!loaded.Contains(depItem)) { LoadItems(projectAssets, map, depItem, compileItems, loaded, itemsGetter); } } } var dllItems = itemsGetter(item); if (dllItems != null) { foreach (var dllItem in dllItems.Where(s => !s.EndsWith("_._", StringComparison.InvariantCulture))) { compileItems.Add(Path.Combine(projectAssets.Libraries[item.Name].Path, dllItem)); } } }
internal void AddTargetItem(TargetItemAssets targetItemAssets) { this.targetItems.Add(targetItemAssets.Name, targetItemAssets); }