This repository implementation keeps track of packages that are referenced in a project but it also has a reference to the repository that actually contains the packages. It keeps track of packages in an xml file at the project root (packages.xml).
Inheritance: IPackageReferenceRepository, IPackageLookup, IPackageConstraintProvider, ILatestPackageLookup
		PackageReferenceRepository CreatePackageReferenceRepository ()
		{
			var sharedRepository = LocalRepository as ISharedPackageRepository;
			var packageRefRepository = new PackageReferenceRepository (projectSystem, projectSystem.ProjectName, sharedRepository);
			packageRefRepository.RegisterIfNecessary ();
			return packageRefRepository;
		}
		void CreatePackageReferenceRepository()
		{
			helper = new PackageReferenceRepositoryHelper();
			fakeFileSystem = helper.FakeProjectSystem;
			sourceRepository = helper.FakeSharedSourceRepository;
			repository = new PackageReferenceRepository(fakeFileSystem, sourceRepository);
		}
 void CreatePackageReferenceRepository(string path)
 {
     helper = new PackageReferenceRepositoryHelper();
     fakeFileSystem = helper.FakeProjectSystem;
     fakeFileSystem.PathToReturnFromGetFullPath = path;
     sourceRepository = helper.FakeSharedSourceRepository;
     repository = new PackageReferenceRepository(fakeFileSystem, helper.FakeProjectSystem.ProjectName, sourceRepository);
 }
		public TestableProjectManager (PackageReferenceRepository repository)
			: base (
				new FakePackageRepository (),
				new FakePackagePathResolver (),
				new FakeProjectSystem (),
				repository)
		{
		}
        public IProjectManager CreateProjectManager(IEnumerable<string> remoteSources, string packagesPath, IProjectSystem project)
        {
            if(remoteSources == null)
            {
                throw new ArgumentNullException("remoteSources");
            }
            if (!remoteSources.Any())
            {
                throw new ArgumentException("Must provide at least one remote source");
            }

            var sourceRepo = new AggregateRepository(PackageRepositoryFactory.Default, remoteSources, true);
            var pathResolver = new DefaultPackagePathResolver(packagesPath);

            var packagesConfigRepo = new PackageReferenceRepository(project, project.ProjectName, new SharedPackageRepository(packagesPath));

            return new ProjectManager(sourceRepository: sourceRepo,
                                        pathResolver: pathResolver,
                                        localRepository: packagesConfigRepo,
                                        project: project);
        }
 SharpDevelopProjectManager CreateProjectManager(PackageReferenceRepository packageRefRepository)
 {
     return new SharpDevelopProjectManager(LocalRepository, PathResolver, projectSystem, packageRefRepository);
 }
Beispiel #7
0
        private ProjectManager buildProjectManager(Project project)
        {
            var projectSystem = new MSBuildProjectSystem(project.ProjectFile);
            var fileSystem = new PhysicalFileSystem(project.ProjectFile.ParentDirectory());
            var sharedPackageRepository = new SharedPackageRepository(_pathResolver, fileSystem);
            var projectRepository = new PackageReferenceRepository(fileSystem, sharedPackageRepository);

            return new ProjectManager(_sourceRepository, _pathResolver, projectSystem, projectRepository){
                Logger = _console
            };
        }
		void CreateProjectManagerWithPackageReferenceRepository ()
		{
			var sharedRepository = new FakeSharedPackageRepository ();
			var repository = new PackageReferenceRepository (fileSystem, "MyProject", sharedRepository);
			projectManager = new TestableProjectManager (repository);
		}
        private IEnumerable<PackageDependency> GetReferences(string packagesConfigPath, IMSBuildProjectSystem project = null, string repositoryPath = null, IPackageRepository sourceRepository = null)
        {
            // Get the msbuild project
            project = project ?? NugetUpdateTask.GetMSBuildProject(packagesConfigPath);

            // Resolve the repository path
            repositoryPath = repositoryPath ?? GetRepositoryPath(project.Root);

            var sharedRepositoryFileSystem = new PhysicalFileSystem(repositoryPath);
            var pathResolver = new DefaultPackagePathResolver(sharedRepositoryFileSystem);

            // Create the local and source repositories
            var sharedPackageRepository = new SharedPackageRepository(pathResolver, sharedRepositoryFileSystem, sharedRepositoryFileSystem);
            var localRepository = new PackageReferenceRepository(project, sharedPackageRepository);
            sourceRepository = sourceRepository ?? AggregateRepositoryHelper.CreateAggregateRepositoryFromSources(RepositoryFactory, SourceProvider, Source);
            IPackageConstraintProvider constraintProvider = localRepository;

            return GetReferences(localRepository, sharedRepositoryFileSystem, sharedPackageRepository, sourceRepository, constraintProvider, pathResolver, project);
        }
        private void UpdatePackages(string packagesConfigPath, IMSBuildProjectSystem project = null, string repositoryPath = null, IPackageRepository sourceRepository = null)
        {
            // Get the msbuild project
            project = project ?? GetMSBuildProject(packagesConfigPath);

            // Resolve the repository path
            repositoryPath = repositoryPath ?? GetRepositoryPath(project.Root);

            var sharedRepositoryFileSystem = new PhysicalFileSystem(repositoryPath);
            var pathResolver = new DefaultPackagePathResolver(sharedRepositoryFileSystem);

            // Create the local and source repositories
            var sharedPackageRepository = new SharedPackageRepository(pathResolver, sharedRepositoryFileSystem, sharedRepositoryFileSystem);
            var localRepository = new PackageReferenceRepository(project, sharedPackageRepository);
            sourceRepository = sourceRepository ?? AggregateRepositoryHelper.CreateAggregateRepositoryFromSources(RepositoryFactory, SourceProvider, Source);
            IPackageConstraintProvider constraintProvider = localRepository;

            Log(Level.Info, "Updating project {0}", project.ProjectName);
            UpdatePackages(localRepository, sharedRepositoryFileSystem, sharedPackageRepository, sourceRepository, constraintProvider, pathResolver, project);
            project.Save();
        }
 public IEnumerable<IPackageRepository> LoadProjectRepositories()
 {
     return _projectRepositories.Select(
         f =>
         {
             var projectRepository = new PackageReferenceRepository(
                 f.FullPath,
                 sourceRepository: this);
             return projectRepository;
         });
 }