以编程方式获取nuget包信息

时间:2018-02-07 13:55:30

标签: c# asp.net specflow

如何以编程方式获取项目中正在使用的nuget包列表。

信息和版本将输出到日志文件中。

我知道如何使用包管理器获取此信息,但是我无法使用代码获取此信息。

我正在使用specflow编写单元测试,并希望将其包含在我的日志文件中。

1 个答案:

答案 0 :(得分:0)

如果您运行单元测试的packages.config文件可用,那么我还建议解析packages.config文件。它们是基于xml的(请参阅相应的reference),因此可以使用任何xml解析器读取它们,例如使用XDocument:

  XDocument document = XDocument.Load(fileName);
  foreach (XElement packageNode in document.XPathSelectElements("/packages/package"))
  {
      string id = packageNode.Attribute("id").Value;
      string version = packageNode.Attribute("version").Value;
      ...
  }

从id和版本(以及目标框架,如果这与你相关),你可以构建一组使用过的包。