Exemplo n.º 1
0
        private static bool CheckFrameworkMatch(PackageReaderBase packageReader, NuGetFramework targetFramework, ref NugetPackageType type)
        {
            var frameworkReducer = new FrameworkReducer();
            Dictionary <NugetPackageType, Func <IEnumerable <FrameworkSpecificGroup> > > getter = new Dictionary <NugetPackageType, Func <IEnumerable <FrameworkSpecificGroup> > >
            {
                { NugetPackageType.DotNetImplementationAssembly, () => packageReader.GetItems(NugetPackage.DotNetImplementationAssemblyPath) },
                { NugetPackageType.DotNetCompileTimeAssembly, () => packageReader.GetItems(NugetPackage.DotNetCompileTimeAssemblyPath) },
            };

            foreach (var get in getter)
            {
                var items = get.Value();
                var targetFrameworkString = targetFramework.GetFrameworkString();
                var match = items.Where(x => targetFrameworkString == x.TargetFramework.GetFrameworkString());
                if (match.Count() > 0)
                {
                    type = get.Key;
                    return(true);
                }
            }
            return(false);
        }
Exemplo n.º 2
0
        static IEnumerable <string> GetAssemblyLocations(NuGetFramework projectFramework, PackageReaderBase package)
        {
            var nearestFramework = package.GetItems(BuildDirectory).GetNearest(projectFramework);

            if (nearestFramework == null)
            {
                return(Enumerable.Empty <string>());
            }

            return(from file in nearestFramework.Items
                   where Path.GetExtension(file) == AssemblyExtension &&
                   !string.IsNullOrEmpty(ResolvePathPlatformName(file))
                   select PathUtility.GetPathWithDirectorySeparator(file));
        }
Exemplo n.º 3
0
        private static Tuple <NugetPackageType, NuGetFramework> GetNearestFramework(PackageReaderBase packageReader, NuGetFramework targetFramework)
        {
            var frameworkReducer = new FrameworkReducer();
            Dictionary <NugetPackageType, Func <IEnumerable <FrameworkSpecificGroup> > > getter = new Dictionary <NugetPackageType, Func <IEnumerable <FrameworkSpecificGroup> > >
            {
                { NugetPackageType.DotNetImplementationAssembly, () => packageReader.GetItems(NugetPackage.DotNetImplementationAssemblyPath) },
                { NugetPackageType.DotNetCompileTimeAssembly, () => packageReader.GetItems(NugetPackage.DotNetCompileTimeAssemblyPath) },
            };

            NuGetFramework nearest = null;

            foreach (var get in getter)
            {
                var items         = get.Value();
                var libFrameworks = items.Select(x => x.TargetFramework);
                nearest = frameworkReducer.GetNearest(targetFramework, libFrameworks);
                if (nearest != null)
                {
                    return(new Tuple <NugetPackageType, NuGetFramework>(get.Key, nearest));
                }
            }
            return(null);
        }
Exemplo n.º 4
0
        static IEnumerable <LibraryFolder> GetLibraryFolders(PackageReaderBase package, string installPath)
        {
            var nativeFramework = package.GetItems(BuildDirectory).FirstOrDefault(
                frameworkGroup => NuGetFramework.FrameworkNameComparer.Equals(frameworkGroup.TargetFramework, NativeFramework));

            if (nativeFramework == null)
            {
                return(Enumerable.Empty <LibraryFolder>());
            }

            return(from file in nativeFramework.Items
                   group file by Path.GetDirectoryName(file) into folder
                   let platform = ResolvePathPlatformName(folder.Key)
                                      where !string.IsNullOrWhiteSpace(platform)
                                  select new LibraryFolder(Path.Combine(installPath, folder.Key), platform));
        }