.Net version


Author: Dave
Date: 05.05.15 - 2:59pm



If you have a .Net binary and want to know what version of the framework it targets from native code the following may help.

it may however have an issue

The function has also been depreceated by MS but still included it appears. below is for VB6.

'[DllImport("mscoree.dll", CharSet = CharSet.Unicode)]
'private static extern int GetFileVersion
'       (string path, StringBuilder buffer, int buflen, out int written);

Private Declare Function GetFileVersion Lib "mscoree.dll" ( _
    ByVal path As Long, _
    ByVal buf As String, _
    bufLen As Long, _
    ByRef cb As Long _
) As Long


Private Sub Form_Load() Dim exe As String Dim buf As String Dim cb As Long Dim ret As Long buf = String(255, 0) exe = "d:\anycpu.exe" & Chr(0) 'api requires a unicode string... ret = GetFileVersion(StrPtr(exe), buf, Len(buf), cb) If cb > 0 Then buf = Mid(buf, 1, (cb * 2)) buf = StrConv(buf, vbFromUnicode, &H409) End If Debug.Print "ret=" & Hex(ret) & " cb=" & cb & " buf=" & Replace(buf, " ", 0) End Sub


ok actually in a little more testing..I dont think this function is returning what I really want. Observe the following screen shots, for this binary, the api above is returning the 2.0xxx value for the runtime version of the native dlls, but in the config it was specified to use .net 3.5. In the second screen shot, you can see the .net 4.0 was loaded.

I want the target framework, not the runtime version, so I guess I would have to parse the CLR assembly metadata tables yuk! The runtime version does not change even if you compile the target framework as 2.0.

Click on the images to enlarge.










Comments: (0)

 
Leave Comment:
Name:
Email: (not shown)
Message: (Required)
Math Question: 40 + 61 = ? followed by the letter: G 



About Me
More Blogs
Main Site
Posts: (All)
2024 ( 3 )
2023 ( 9 )
2022 ( 4 )
2021 ( 2 )
2020 ( 4 )
2019 ( 5 )
2018 ( 6 )
2017 ( 6 )
2016 ( 22 )
2015 (15)
     C# self register ocx
     VB6 Class Method Pointers
     Duktape Debug Protocol
     QtScript 4 VB
     Vb6 Named Args
     vb6 Addin Part 2
     VB6 Addin vrs Toolbars
     OpenFile Dialog MultiSelect
     Duktape Example
     DukTape JS
     VB6 Unsigned
     .Net version
     TitleBar Height
     .NET again
     VB6 Self Register OCXs
2014 ( 25 )
2013 ( 4 )
2012 ( 10 )
2011 ( 7 )
2010 ( 11 )
2009 ( 3 )