Я строй небольшой C# программы для сбора информации о используемых NuGet пакетахC# строит инструмент для сбора проекта NuGet информации
Это каждый кусок информации я хочу:
public class Package
{
public string Version { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int Count { get; set; }
public List<string> Versions { get; set; }
}
И это как я собираю всю информацию:
public partial class MainWindow : Window
{
public Dictionary<string, Package> Packages;
public string Folder;
public SaveFileDialog saveFileDialog = new SaveFileDialog();
public FolderBrowserDialog folderBrowseDialog = new FolderBrowserDialog();
public MainWindow()
{
InitializeComponent();
Packages = new Dictionary<string, Package>();
}
private void SearchBtn_Click(object sender, RoutedEventArgs e)
{
DialogResult result = folderBrowseDialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
DoneLbl.Content = "Started";
Folder = folderBrowseDialog.SelectedPath;
foreach (string fileName in Directory.EnumerateFiles(Folder, "packages.config", SearchOption.AllDirectories))
{
var file = new PackageReferenceFile(fileName);
foreach (PackageReference packageReference in file.GetPackageReferences())
{
if (Packages.ContainsKey(packageReference.Id))
{
Packages[packageReference.Id].Count++;
if (Packages[packageReference.Id].Versions.Contains(packageReference.Version.ToString()))
{
}
else
{
var oldVersion = new Version(Packages[packageReference.Id].Version);
var newVersion = new Version(packageReference.Version.ToString());
if (newVersion > oldVersion)
{
Packages[packageReference.Id].Version = packageReference.Version.ToString();
}
Packages[packageReference.Id].Versions.Add(packageReference.Version.ToString());
}
}
else
{
var package = new Package();
package.Name = packageReference.Id;
package.Count = 1;
package.Version = packageReference.Version.ToString();
package.Versions = new List<string>();
package.Versions.Add(packageReference.Version.ToString());
Packages.Add(packageReference.Id, package);
}
}
DoneLbl.Content = "Done";
}
}
}
private void ExportBtn_Click(object sender, RoutedEventArgs e)
{
saveFileDialog.Filter = "Text File | *.txt";
DialogResult result = saveFileDialog.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
string lines = "Nuget Packages for \r\n" + Folder + "\r\n";
foreach (var Package in Packages)
{
lines += "********************\r\n";
lines += "Name: " + Package.Value.Name + "\r\n";
lines += "Version: " + Package.Value.Version + "\r\n";
lines += "Different Versions: " + Package.Value.Versions.Count + "\r\n";
lines += "Description: " + Package.Value.Description + "\r\n";
lines += "Count: " + Package.Value.Count + "\r\n";
}
StreamWriter file = new StreamWriter(saveFileDialog.FileName);
file.WriteLine(lines);
file.Close();
}
}
}
Это получает все через пакет «Nuget.Core» nuget. Но мне все еще не хватает описания. Есть ли способ найти описание пакета через этот пакет nuget? Или любым другим способом, который я могу использовать, чтобы найти описания пакетов?