获取具有目标框架的.net程序集的目标框架< .net 4.0

时间:2016-08-16 12:31:37

标签: .net dll frameworks exe .net-assembly

我想确定.net程序集(dll或exe)的目标框架版本。 如果.net程序集具有目标框架< .net 4.0? 如果有一个解决方案,我不必使用外部工具,那将是很好的。我更喜欢基于Microsoft VS / PowerShell或Windows的解决方案。 如果你能帮助我,我会很高兴的。 因为现在我只知道如果程序集具有目标版本> = .net 4.0,如何获取目标框架版本。 (在这种情况下,我只是查看程序集的清单并查看TargetFrameworkAttribute)

非常感谢

PhilOverflow

1 个答案:

答案 0 :(得分:0)

我使用Assembly.ReflectionOnlyLoadFrom加载程序集,然后检查返回的程序集的ImageRuntimeVersion,如:

    var assembly = Assembly.ReflectionOnlyLoadFrom(ada.FileName);
    string name = assembly.GetName();
    string clrVersion = assembly.ImageRuntimeVersion;

我已经使用这种技术从.NET 4可执行文件成功检测到.NET 2和.NET 4程序集,但不确定它是否可以从.NET 2可执行文件中检测.NET 4程序集。