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);
 }