.NET Framework に対してコンパイルされ、展開された古い dll があります。どのバージョンの .NET Framework に対してコンパイルされたのかわかりません。この dll がどのバージョンの .NET Framework に対してコンパイルされたのかをどうやって確認すればよいのでしょうか。ソース コードは Visual Studio 2008 にアップグレードされ、.NET Framework バージョン 3.5 に変更されたと思われるため、信頼できません。
ベストアンサー1
PowerShell では、次のコマンドを使用してターゲット ランタイムを取得できます。
$path = "C:\Some.dll"
[Reflection.Assembly]::ReflectionOnlyLoadFrom($path).ImageRuntimeVersion
これをPowerShellに適応させたのはベン・グリスウォルドの答え。
Visual Studio で指定されているターゲット フレームワークのバージョンを確認するには、次のコマンドを使用します。
$path = "C:\Some.dll"
[Reflection.Assembly]::ReflectionOnlyLoadFrom($path).CustomAttributes |
Where-Object {$_.AttributeType.Name -eq "TargetFrameworkAttribute" } |
Select-Object -ExpandProperty ConstructorArguments |
Select-Object -ExpandProperty value
次のようなものが得られるはずです
.NETFramework、バージョン=v4.5.2