public NugetService(Solution solution) { //_defaultPackageSource = new PackageSource(NuGetConstants.DefaultFeedUrl); var factory = new PackageRepositoryFactory(); _remoteRepository = factory.CreateRepository(GalleryUrl); _localRepository = factory.CreateRepository(solution.PackagesFolder()); _sourceRepository = new AggregateRepository(new[] { _remoteRepository, _localRepository }); _fileSystem = new PhysicalFileSystem(solution.PackagesFolder()); _pathResolver = new DefaultPackagePathResolver(_fileSystem); _console = new Console(); _packageManager = new PackageManager(_sourceRepository, _pathResolver, _fileSystem, _localRepository){ Logger = _console }; _packages = new Cache<NugetDependency, IPackage>(dep => { Install(dep); return _sourceRepository.FindPackage(dep.Name, dep.Version); }); }
protected override void ExecuteTask() { string dir = SolutionDir.FullName; string repositoryPath = GetRepositoryPathFromSolution(dir); _fileSystem = new PhysicalFileSystem(dir); RepositoryFactory = new PackageRepositoryFactory(); SourceProvider = new PackageSourceProvider(new Settings(_fileSystem)); var repo = RepositoryFactory.CreateRepository(repositoryPath); Log(Level.Debug, "Repo: {0}, Count: {1}", repo.Source, repo.GetPackages().Count()); var fw = VersionUtility.ParseFrameworkName(Framework); List<string> files = new List<string>(), references = new List<string>(); foreach (var deps in Dependencies) { foreach (var dep in deps.Dependencies) { var package = repo.FindPackage(dep.Id, dep.VersionSpec, !String.IsNullOrWhiteSpace(dep.VersionSpec.MinVersion.SpecialVersion), false); if (package == null) package = repo.FindPackage(dep.Id, dep.VersionSpec, true, false); if (package == null) package = repo.FindPackage(dep.Id, dep.VersionSpec, true, true); if (package == null) throw new BuildException(String.Format("Can't find package {0} with min version {1}", dep.Id, dep.MinVersion), Location); string pkgPath = Path.Combine(repositoryPath, package.Id + "." + package.Version); var package_files = package.GetLibFiles().ToList(); IEnumerable<IPackageFile> compatible_files; Log(Level.Debug, "Found package {0} with {1} file(s) - {2}", package.Id, package_files.Count, package.GetType()); if (!VersionUtility.TryGetCompatibleItems(fw, package_files, out compatible_files)) throw new BuildException("Couldn't get compatible files."); foreach (var f in compatible_files) { var extension = Path.GetExtension(f.Path); var path = Path.Combine(pkgPath, f.Path); Log(Level.Debug, " - Found compatible file {1} ({0}) - {2}", f.Path, f.EffectivePath, path); if (extension == ".dll" || extension == ".exe") references.Add(path); files.Add(path); } } } if (FilesId != null) { PatternSet ps = new PatternSet(); ps.Include.AddRange(files.Select(MakePattern).ToArray()); Project.DataTypeReferences.Add(FilesId, ps); } if (ReferencesId != null) { PatternSet ps = new PatternSet(); ps.Include.AddRange(references.Select(MakePattern).ToArray()); Project.DataTypeReferences.Add(ReferencesId, ps); } Log(Level.Info, "Found {0} file(s) and {1} reference(s)", files.Count, references.Count); }
private async Task Initialize() { var listEndpoints = await GetListEndpointsAsync(_sourceProvider).ConfigureAwait(false); var repositoryFactory = new PackageRepositoryFactory(); var repositories = listEndpoints .Select(s => repositoryFactory.CreateRepository(s)) .ToList(); _repository = new AggregateRepository(repositories); }
public static IPackageRepository CreateRepository() { IPackageRepositoryFactory factory = new PackageRepositoryFactory(); IPackageRepository repository = factory.CreateRepository(new PackageSource("https://packages.nuget.org/v1/FeedService.svc/", "NuGet.org")); return repository; }