gpt4 book ai didi

c# - 如何以编程方式读取 packages.config 中的 NuGet 包列表?

转载 作者:太空狗 更新时间:2023-10-29 21:08:22 28 4
gpt4 key购买 nike

读取(最好通过 C#)packages.config 文件中列出的包的最佳方式是什么?

在我们的源代码存储库中,我有很多解决方案和项目,同样还有很多 packages.config 文件。我正在尝试构建一个在我的源代码存储库中使用的包(和版本)的综合列表。

我可以看到有一个可用的 NuGet.Core 包 - 我如何使用它来实现我的目标?

谢谢

最佳答案

如果您不想直接读取 XML,您可以安装 NuGet.Core NuGet 包,然后使用 PackageReference 类。

下面是一些使用此类打印包 ID 及其版本的示例代码。

string fileName = @"c:\full\path\to\packages.config";

var file = new PackageReferenceFile(fileName);
foreach (PackageReference packageReference in file.GetPackageReferences())
{
Console.WriteLine("Id={0}, Version={1}", packageReference.Id, packageReference.Version);
}

您需要自己找到 packages.config 文件,您可以通过目录搜索来完成,例如:

foreach (string fileName in Directory.EnumerateFiles("d:\root\path", "packages.config", SearchOption.AllDirectories))
{
// Read the packages.config file...
}

另一种更新的方法是安装 NuGet.Packaging NuGet 包并使用类似于以下的代码:

var document = XDocument.Load (fileName);
var reader = new PackagesConfigReader (document);
foreach (PackageReference package in reader.GetPackages ())
{
Console.WriteLine (package.PackageIdentity);
}

关于c# - 如何以编程方式读取 packages.config 中的 NuGet 包列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33035704/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com