private static void GenerateAtomFeed() { var packageFiles = EnumerateFilesSafe(new DirectoryInfo(_dir), "*.vsix", _recursive ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly).Distinct(); var filteredPackageFiles = string.IsNullOrEmpty(_exclude) ? packageFiles : packageFiles.Where(f => !f.FullName.Contains(_exclude)); var packagesToProcess = filteredPackageFiles.Select(f => ProcessVsix(f.FullName)); if (_latestOnly) { packagesToProcess = packagesToProcess.GroupBy(p => p.ID).Select(g => g.OrderByDescending(pkg => Version.Parse(pkg.Version)).First()); } var writer = new FeedWriter(_galleryName); string feedUrl = _outputFile; string xml = writer.GetFeed(feedUrl, packagesToProcess); File.WriteAllText(feedUrl, xml, Encoding.UTF8); Console.WriteLine(); Console.WriteLine($"{_outputFile} generated successfully"); }