private IEnumerable <ITaskItem> TryGetTaskItemsFromLibrary(Library library, ContentPatternDefinition definition)
        {
            var taskItems = new List <ITaskItem>();
            var contents  = library.GetItem <ContentItemCollection>("contents");

            if (contents == null)
            {
                return(taskItems);
            }

            var group = contents.FindBestItemGroup(GetSelectionCriteria(), definition);

            if (group == null)
            {
                return(null);
            }

            foreach (var item in group.Items.Where(i => Path.GetFileName(i.Path) != "_._"))
            {
                var taskItem = new TaskItem(Path.Combine(Path.GetDirectoryName(library.Path), item.Path.Replace('/', '\\')));

                taskItem.SetMetadata("NuGetPackageName", library.Identity.Name);
                taskItem.SetMetadata("NuGetPackageVersion", library.Identity.Version.ToString());

                taskItems.Add(taskItem);
            }

            return(taskItems);
        }
Exemplo n.º 2
0
        public PatternDefinitions()
        {
            Properties = new PropertyDefinitions();

            ManagedAssemblies = new ContentPatternDefinition
            {
                GroupPatterns =
                {
                    "lib/{tfm}.{tpm}/{any?}",
                    "lib/{tfm}/{any?}",
                },
                PathPatterns =
                {
                    "lib/{tfm}.{tpm}/{assembly}",
                    "lib/{tfm}/{assembly}",
                },
                PropertyDefinitions = Properties.Definitions,
            };

            CompileTimeAssemblies = new ContentPatternDefinition
            {
                GroupPatterns =
                {
                    "ref/{tfm}.{tpm}/{any?}",
                    "ref/{tfm}/{any?}",
                },
                PathPatterns =
                {
                    "ref/{tfm}.{tpm}/{assembly}",
                    "ref/{tfm}/{assembly}",
                },
                PropertyDefinitions = Properties.Definitions,
            };

            AheadOfTimeAssemblies = new ContentPatternDefinition
            {
                GroupPatterns =
                {
                    "aot/{tfm}.{tpm}/{any?}",
                    "aot/{tfm}/{any?}",
                },
                PathPatterns =
                {
                    "aot/{tfm}.{tpm}/{assembly}",
                    "aot/{tfm}/{assembly}",
                },
                PropertyDefinitions = Properties.Definitions,
            };

            ResourceAssemblies = new ContentPatternDefinition
            {
                GroupPatterns =
                {
                    "lib/{tfm}.{tpm}/{locale?}/{resources?}",
                    "lib/{tfm}/{locale?}/{resources?}",
                },
                PathPatterns =
                {
                    "lib/{tfm}.{tpm}/{locale}/{resources}",
                    "lib/{tfm}/{locale}/{resources}",
                },
                PropertyDefinitions = Properties.Definitions,
            };

            NativeLibraries = new ContentPatternDefinition
            {
                GroupPatterns =
                {
                    "native/{tfm}.{tpm}/{arch?}/{any?}",
                    "native/{tpm}/{arch?}/{any?}",
                },
                PathPatterns =
                {
                    "native/{tfm}.{tpm}/{arch}/{dynamicLibrary}",
                    "native/{tpm}/{arch}/{dynamicLibrary}",
                },
                PropertyDefinitions = Properties.Definitions,
            };
        }
Exemplo n.º 3
0
            public PatternDefinitions()
            {
                Properties = new PropertyDefinitions();

                ManagedAssemblies = new ContentPatternDefinition
                {
                    GroupPatterns =
                    {
                        "runtimes/{rid}/lib/{tfm}/{any?}",
                        "lib/{tfm}/{any?}"
                    },
                    PathPatterns =
                    {
                        "runtimes/{rid}/lib/{tfm}/{assembly}",
                        "lib/{tfm}/{assembly}"
                    },
                    PropertyDefinitions = Properties.Definitions
                };

                ManagedAssemblies.GroupPatterns.Add(new PatternDefinition
                {
                    Pattern  = "lib/{assembly?}",
                    Defaults = new Dictionary <string, object>
                    {
                        { "tfm", VersionUtility.ParseFrameworkName("net") }
                    }
                });

                ManagedAssemblies.PathPatterns.Add(new PatternDefinition
                {
                    Pattern  = "lib/{assembly}",
                    Defaults = new Dictionary <string, object>
                    {
                        { "tfm", VersionUtility.ParseFrameworkName("net") }
                    }
                });

                CompileTimeAssemblies = new ContentPatternDefinition
                {
                    GroupPatterns =
                    {
                        "ref/{tfm}/{any?}",
                    },
                    PathPatterns =
                    {
                        "ref/{tfm}/{assembly}",
                    },
                    PropertyDefinitions = Properties.Definitions,
                };

                ResourceAssemblies = new ContentPatternDefinition
                {
                    GroupPatterns =
                    {
                        "runtimes/{rid}/lib/{tfm}/{locale?}/{any?}",
                        "lib/{tfm}/{locale?}/{any?}"
                    },
                    PathPatterns =
                    {
                        "runtimes/{rid}/lib/{tfm}/{locale}/{resources}",
                        "lib/{tfm}/{locale}/{resources}"
                    },
                    PropertyDefinitions = Properties.Definitions
                };

                ResourceAssemblies.GroupPatterns.Add(new PatternDefinition
                {
                    Pattern  = "lib/{locale}/{resources?}",
                    Defaults = new Dictionary <string, object>
                    {
                        { "tfm", VersionUtility.ParseFrameworkName("net") }
                    }
                });

                ResourceAssemblies.PathPatterns.Add(new PatternDefinition
                {
                    Pattern  = "lib/{locale}/{resources}",
                    Defaults = new Dictionary <string, object>
                    {
                        { "tfm", VersionUtility.ParseFrameworkName("net") }
                    }
                });

                NativeLibraries = new ContentPatternDefinition
                {
                    GroupPatterns =
                    {
                        "runtimes/{rid}/native/{any?}",
                        "native/{any?}",
                    },
                    PathPatterns =
                    {
                        "runtimes/{rid}/native/{any}",
                        "native/{any}",
                    },
                    PropertyDefinitions = Properties.Definitions,
                };
            }