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); }); }
/// <summary> /// Deletes all files from a package /// </summary> /// <param name="installed">Insyalled package</param> /// <param name="repositories">Repositories where to find the package</param> private void DeleteFiles(PackageInfo installed, ICollection<string> repositories) { Logger.Log("Deleting installed files... "); var factory = new PackageRepositoryFactory(); IPackage package; var globalRepo = new AggregateRepository(factory, repositories, true); package = globalRepo.FindPackage(installed.Name, SemanticVersion.Parse(installed.Version), true, true); if (package == null) { throw new InexistentPackageException(string.Format("Unable to find package {0} version {1}", installed.Name, installed.Version)); } var fylesystem = new PhysicalFileSystem(installed.InstallationDirectory); fylesystem.DeleteFiles(package.GetFiles(), installed.InstallationDirectory); File.Delete(Path.Combine(installed.InstallationDirectory, installed.Name + "." + installed.Version + ".nupkg")); foreach (var config in Directory.GetFiles(installed.InstallationDirectory, "*.config")) { File.Delete(config); } Logger.Log("Installed files deleted"); }
public static Stream DownloadDacpac(string packageName, string version, string repository) { var factory = new PackageRepositoryFactory(); IPackage package; var globalRepo = new AggregateRepository(factory,new string[] { repository }, true); package = globalRepo.FindPackage(packageName, SemanticVersion.Parse(version), true, true); var files = package.GetFiles(); return files.Single(x => x.Path.EndsWith(".dacpac")).GetStream(); }
/// <summary> /// Downloads the specified package and installs it in the configured folder /// </summary> /// <param name="info">Pacakge informations</param> private void DownloadPackage(PackageInfo info, ICollection<string> repositories) { Logger.Log(String.Format("Downloading package for {0} version {1} ... ", info.Name, info.Version)); var factory = new PackageRepositoryFactory(); IPackage package; var globalRepo = new AggregateRepository(factory, repositories, true); package = globalRepo.FindPackage(info.Name, SemanticVersion.Parse(info.Version), true, true); if (package == null) { throw new InexistentPackageException(string.Format("Unable to find package {0} version {1}", info.Name, info.Version)); } var manager = new PackageManager( globalRepo, new CustomPathResolver() { BasePath = info.InstallationDirectory }, new OverWritingPhysicalFilesystem(info.InstallationDirectory)); manager.InstallPackage(package, false, true); Logger.Log(String.Format("Package for {0} version {1} downloaded ... ", info.Name, info.Version)); }
static void Main(string[] args) { var orchardDirectory = args[0]; var inputDirectory = args[1]; var outputDirectory = args[2]; var cacheDirectory = args[3]; var cacheFileSystem = new PhysicalFileSystem(cacheDirectory); var cachePackageResolver = new DefaultPackagePathResolver(cacheFileSystem, false); var orchardRepository = new AggregateRepository(new IPackageRepository[] { new LocalPackageRepository(orchardDirectory), new DataServicePackageRepository(new Uri("http://nuget.org/api/v2")), }); var orchardManager = new PackageManager(orchardRepository, cachePackageResolver, cacheFileSystem); var inputRepository = new LocalPackageRepository(inputDirectory); var inputManager = new PackageManager(inputRepository, cachePackageResolver, cacheFileSystem); var references = new[] { "Orchard.Core", "Orchard.Framework", "Orchard.External" }; foreach (var reference in references) orchardManager.InstallPackage(orchardRepository.FindPackage(reference), false, false); foreach (var inputPackage in inputRepository.GetPackages().Where(p => p.Id.StartsWith("Orchard.Module."))) { Do(inputRepository, inputManager, inputPackage, cacheDirectory, references, outputDirectory); } }