NuGet.Commands.ProjectFactory.AddFiles C# (CSharp) Метод

AddFiles() приватный Метод

private AddFiles ( PackageBuilder builder, string itemType, string targetFolder ) : void
builder PackageBuilder
itemType string
targetFolder string
Результат void
        private void AddFiles(PackageBuilder builder, string itemType, string targetFolder)
        {
            // Skip files that are added by dependency packages 
            string packagesConfig = GetPackagesConfig();
            IPackageRepository repository = GetPackagesRepository();
            var contentFilesInDependencies = new List<IPackageFile>();
            if (packagesConfig != null && repository != null)
            {
                var references = new PackageReferenceFile(packagesConfig).GetPackageReferences();
                contentFilesInDependencies = references.Select(reference => repository.FindPackage(reference.Id, reference.Version))
                                                       .SelectMany(a => a.GetContentFiles())
                                                       .ToList();
            }

            // Get the content files from the project
            foreach (var item in _project.GetItems(itemType))
            {
                string fullPath = item.GetMetadataValue("FullPath");

                if (_excludeFiles.Contains(Path.GetFileName(fullPath)))
                {
                    continue;
                }

                string targetFilePath = GetTargetPath(item);

                if (!File.Exists(fullPath))
                {
                    Logger.Log(MessageLevel.Warning, NuGetResources.Warning_FileDoesNotExist, targetFilePath);
                    continue;
                }

                // Check that file is added by dependency
                string targetPath = Path.Combine(targetFolder, targetFilePath);
                IPackageFile targetFile = contentFilesInDependencies.Find(a => a.Path.Equals(targetPath, StringComparison.OrdinalIgnoreCase));
                if (targetFile != null)
                {
                    // Compare contents as well
                    using (var dependencyFileStream = targetFile.GetStream())
                    using (var fileContentsStream = File.Open(fullPath, FileMode.Open))
                    {
                        var isEqual = FileHelper.AreFilesEqual(dependencyFileStream, fileContentsStream);
                        if (isEqual)
                        {
                            Logger.Log(MessageLevel.Info, NuGetResources.PackageCommandFileFromDependencyIsNotChanged, targetFilePath);
                            continue;
                        }

                        Logger.Log(MessageLevel.Info, NuGetResources.PackageCommandFileFromDependencyIsChanged, targetFilePath);
                    }
                }

                builder.Files.Add(new PhysicalPackageFile
                {
                    SourcePath = fullPath,
                    TargetPath = targetPath
                });
            }
        }