AddPackage() public method

public AddPackage ( IPackage package ) : void
package IPackage
return void
コード例 #1
0
ファイル: PackageDownloader.cs プロジェクト: sergio/Calamari
        void DownloadPackage(IPackage package, string fullPathToDownloadTo, NuGet.PackageDownloader directDownloader)
        {
            Log.VerboseFormat("Found package {0} version {1}", package.Id, package.Version);
            Log.Verbose("Downloading to: " + fullPathToDownloadTo);

            var dsp = package as DataServicePackage;
            if (dsp != null && directDownloader != null)
            {
                Log.Verbose("A direct download is possible; bypassing the NuGet machine cache");
                using (var targetFile = new FileStream(fullPathToDownloadTo, FileMode.CreateNew))
                    directDownloader.DownloadPackage(dsp.DownloadUrl, dsp, targetFile);
                return;
            }

            var physical = new PhysicalFileSystem(Path.GetDirectoryName(fullPathToDownloadTo));
            var local = new LocalPackageRepository(new FixedFilePathResolver(package.Id, fullPathToDownloadTo), physical);
            local.AddPackage(package);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: davidebbo/NugetDownloader
        static void Main(string[] args)
        {
            if (args.Length != 2)
            {
                Console.WriteLine("Syntax: NugetDownloader targetFolder numOfPackages");
                return;
            }

            var downloadFolder = new DirectoryInfo(args[0]);
            var packageCount = Int32.Parse(args[1]);
            var localRepository = new LocalPackageRepository(downloadFolder.FullName);

            DataServicePackageRepository remoteRepo = null;
            try
            {
                remoteRepo = new DataServicePackageRepository(nugetUri);

                var packages = remoteRepo.GetPackages()
                    .Where(p => p.IsLatestVersion)
                    .OrderByDescending(p => p.DownloadCount)
                    .Take(packageCount);

                foreach (IPackage eachPackage in packages)
                {
                    try
                    {
                        Console.Write(eachPackage.Id + " " + eachPackage.Version + " ... ");
                        localRepository.AddPackage(eachPackage);
                        Console.WriteLine("OK");
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("FAILED");
                        Console.WriteLine("[EXCEPTION] " + ex.Message);
                    }
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine("[EXCEPTION] " + ex.Message);
                return;
            }

            foreach (var file in downloadFolder.EnumerateFiles("*.nupkg", SearchOption.AllDirectories))
            {
                try
                {
                    var targetPath = Path.Combine(downloadFolder.FullName, file.Name);
                    if (!File.Exists(targetPath))
                        file.MoveTo(targetPath);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("[EXCEPTION] " + ex.Message);
                }
            }

            foreach (var dir in downloadFolder.EnumerateDirectories())
            {
                dir.Delete(true);
            }
        }