tags:

views:

84

answers:

6

I have a third party program installed and I want to find out what version of the .Net framework it is using.

How do I figure that out?

+2  A: 

I believe you can do that using ILDasm or .NET Reflector.

Open Visual Studio command prompt... Run ILDasm

If you open the Manifest, you should be able to get the .ver, and mscorlib's version should be target version. For ex. the following DLL is using 4.0

// Metadata version: v4.0.30319 .assembly extern mscorlib { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. .ver 4:0:0:0 }

Rahul Soni
A: 

I found this link. It might mean writing a small secondary program to perform the action:

http://www.vbdotnetforums.com/net-framework/26246-how-identify-framework-version-dll-using.html

Joel Etherton
+1  A: 

If using a utility is ok, i would recommend the Process Explorer from SysInternals

InSane
+5  A: 

Start up Visual Studio 2008 Command Prompt, go to the folder your assembly is in type "corflags.exe assemblyName.dll" and you should get the following info back

Version   : v4.0.30319
CLR Header: 2.5
PE        : PE32
CorFlags  : 1
ILONLY    : 1
32BIT     : 0
Signed    : 0
Iain
What do I do on a client machine that does not have visual studio installed?
Raj More
Raj, CorFlags.exe is part of the Windows SDK can be found here C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64\corflags.exe, I am unsure what dependcies it has but you could try running it as individual .exe on the client machine
Iain
+1  A: 

Load ILDASM and import your DLL. Double click on the 'Manifest' and it will display the framework version.

keyboardP
+2  A: 

You can definitely get it from Reflector. (See screenshot below - the last thing listed is the Target Runtime).

alt text

David Stratton
Oops. I see someone else suggested this. I'm voting that person up because they answered first, but I'll leave my answer for the screenshot, because I'm hoping it will save time and be helpful.
David Stratton