我正在处理一个项目,我们需要知道我们正在使用的 NuGet 包的版本,并在代码中使用它。
我尝试的一种方法是从 packages.config
文件中读取,为我想要的包解析它,并为版本解析行。像这样的东西:
var lines = System.IO.File.ReadAllLines(@"..\..\packages.config");
foreach(var line in lines)
{
if (line.Contains("My.Package"))
{
foreach(var part in line.split(' '))
{
if (part.Contains("version"))
{
return part.Split('"')[1];
}
}
}
}
有没有更好的方法以编程方式执行此操作?
注意:上面的代码将不起作用,因为 packages.config 没有随应用程序一起部署。
最佳答案
如果包有任何类,您可以只从该类获取程序集,然后获取版本。但是,如果包没有类,例如做一些像使用 nuget.targets 复制文件这样的事情是不可能的。
Console.WriteLine("Using Selenium.WebDriver: " + Assembly.GetAssembly(typeof(OpenQA.Selenium.By)).GetName().Version.ToString());
关于c# - 如何以编程方式获取解决方案中使用的 NuGet 包的版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34775712/