Daha önceden derlenmiş bir .NET DLL veya EXE dosyasının .NET'in hangi sürümü ile derlendiğini öğrenmenin birden fazla yolu yöntemi var.
İhtiyaç halinde internetten herhangi bir araç, program vs. arama gereksinimi olmadan bu işi çözebileceğiniz en pratik yöntem .NET Framework kurulumlarıyla birlikte gelen CorFlags.exe ismindeki araçtır.
Diskimizde emektar Everything Search programı ile arattığımızda aşağıdaki klasörlerde (her .NET Framework kurulumu ile birlikte gelen farklı versiyonlardaki CorFlags.exe) dosyaları görebiliyoruz:
CorFlags.exe dosyasının farklı versiyonlarının diskimizde bulunduğu klasörler |
Bu dosyalar içinden diskimizde yüklü olan en son .NET Framework versiyonunun olduğu klasördekini aşağıdaki şekilde kullanacağız:
Cmd.Exe ile açtığımız konsol ekranında üstteki örnekte olduğu gibi komutumuzu çalıştırıyoruz |
Benim bilgisayarımda dosya adını arattığımda dönen arama sonuçları aşağıdaki gibiydi:
* 32bit işletim sistemleri için:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7 Tools\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\CorFlags.exe
* 64bit işletim sistemleri için:
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\x64\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools\x64\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7 Tools\x64\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\x64\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\CorFlags.exe
C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\CorFlags.exe
Benim kullandığım komut:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.7.1 Tools\x64\CorFlags.exe" test2.exe
Konsol ekranında dönen sonuç:
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.7.2558.0
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x20003
ILONLY : 1
32BITREQ : 0
32BITPREF : 1
Signed : 0
Burada "Version" yazan satır bize aradığımız sonucu vermektedir. :)
Dediğim gibi sonucu birden farklı yöntemlerle de elde edebiliriz fakat harici bir araç, program kullanmadan en temiz ve kestirme yöntem bu.
Buna benzer şekilde ildasm aracı ile de açıp, publickeytoken'a bakıp bulabilirdik. O da .NET Framework kurulumlarıyla geliyor, fakat buna kıyasla az biraz daha zahmetli sayılır. :)