/// <summary>
        /// Called by <see cref="GetPackageFiles"/> method.
        /// </summary>
        /// <param name="packageId">The package identifier.</param>
        /// <param name="packagePath">The package path.</param>
        /// <returns>List of the files for deployment. <see cref="PackageFileDeploymentInfo"/></returns>
        protected IReadOnlyCollection <PackageFileDeploymentInfo> OnGetPackageFiles(PackageId packageId, string packagePath)
        {
            var files         = new List <PackageFileDeploymentInfo>();
            var toolsFolder   = Path.Combine(packagePath, "tools");
            var contentFolder = Path.Combine(packagePath, "content");
            var libFolder     = Path.Combine(packagePath, "lib");

            if (Directory.Exists(toolsFolder))
            {
                AddFiles(toolsFolder, _deploymentContext.ProductPath, FileAction.None, FileType.Tool, files);
            }

            if (Directory.Exists(contentFolder))
            {
                AddFiles(contentFolder, _deploymentContext.ProductPath, FileAction.Copy, FileType.Content, files);
            }

            if (Directory.Exists(libFolder))
            {
                var libFxFolder = Path.Combine(libFolder, _deploymentContext.TargetFramework);
                if (!Directory.Exists(libFxFolder))
                {
                    var fxName = NuGetEngine.GetMostCompatibleFramework(_deploymentContext.TargetFramework,
                                                                        Directory.EnumerateDirectories(libFolder).Select(Path.GetFileName));
                    if (fxName == null)
                    {
                        Console.WriteLine($"Skipping package {packageId.Id} because unkown framework present on PKG");
                        return(files);
                    }
                    libFxFolder = Path.Combine(libFolder, fxName);
                    if (!Directory.Exists(libFxFolder))
                    {
                        return(files);
                    }
                }

                AddFiles(libFxFolder, _deploymentContext.ProductPath, FileAction.Copy, FileType.LibFile, files);
            }

            return(files);
        }
Exemplo n.º 2
0
        protected IEnumerable <PackageFileInfo> OnGetPackageFiles(PackageId packageId, string packagePath)
        {
            var files         = new List <PackageFileInfo>();
            var toolsFolder   = Path.Combine(packagePath, "tools");
            var contentFolder = Path.Combine(packagePath, "content");
            var libFolder     = Path.Combine(packagePath, "lib");

            if (Directory.Exists(toolsFolder))
            {
                AddFiles(toolsFolder, _deploymentContext.ProductPath, FileAction.None, FileType.Tool, files);
            }

            if (Directory.Exists(contentFolder))
            {
                AddFiles(contentFolder, _deploymentContext.ProductPath, FileAction.Copy, FileType.Content, files);
            }

            if (Directory.Exists(libFolder))
            {
                var libFxFolder = Path.Combine(libFolder, _deploymentContext.TargetFramework);
                if (!Directory.Exists(libFxFolder))
                {
                    var fxName = NuGetEngine.GetMostCompatibleFramework(_deploymentContext.TargetFramework,
                                                                        Directory.EnumerateDirectories(libFolder).Select(Path.GetFileName));
                    libFxFolder = Path.Combine(libFolder, fxName);
                    if (!Directory.Exists(libFxFolder))
                    {
                        return(files);
                    }
                }

                AddFiles(libFxFolder, _deploymentContext.ProductPath, FileAction.Copy, FileType.LibFile, files);
            }

            return(files);
        }