如何以编程方式获取项目中正在使用的nuget包列表。
信息和版本将输出到日志文件中。
我知道如何使用包管理器获取此信息,但是我无法使用代码获取此信息。
我正在使用specflow编写单元测试,并希望将其包含在我的日志文件中。
答案 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和版本(以及目标框架,如果这与你相关),你可以构建一组使用过的包。