public override void ExecuteCommand() { if (!string.IsNullOrEmpty(Arguments[0])) { List<string> assemblies = new List<string>(); if (!Arguments[0].EndsWith(".dll")) { fileSystem = CreateFileSystem(Directory.GetCurrentDirectory()); assemblies.AddRange(GetAssemblyListFromDirectory()); } else { assemblies.Add(Arguments[0]); } Stopwatch sw = new Stopwatch(); sw.Start(); var repository = GetRepository(); IQueryable<IPackage> packageSource = GetPackageList(repository); resolver = new RepositoryAssemblyResolver(assemblies, packageSource, fileSystem, Console); Dictionary<string, List<IPackage>> assemblyLocations = new Dictionary<string, List<IPackage>>(); if (assemblies.Count > 0) { assemblyLocations = resolver.ResolveAssemblies(Exhaustive); } Console.WriteLine(); sw.Stop(); if (!OutputPackageConfig) { OutputResultsToConsole(sw, assemblyLocations); } else { resolver.OutputPackageConfigFile(); OutputErrors(assemblyLocations); } Environment.Exit(0); } }
private Dictionary <string, List <IPackage> > ResolveAssembliesToPackagesConfigFile(FileInfo projectFileInfo, List <string> referenceFiles) { var results = new Dictionary <string, List <IPackage> >(); if (referenceFiles.Any()) { Console.WriteLine("Checking feed for {0} references...", referenceFiles.Count); IQueryable <IPackage> packageSource = GetRepository().GetPackages().OrderBy(p => p.Id); var assemblyResolver = new RepositoryAssemblyResolver(referenceFiles, packageSource, new PhysicalFileSystem(projectFileInfo.Directory.ToString()), Console); results = assemblyResolver.ResolveAssemblies(false); assemblyResolver.OutputPackageConfigFile(); } else { Console.WriteWarning("No references found to resolve (all GAC?)"); } return(results); }