Believe it or not, I've been working on it. And finding out
what version of .NET is needed, is *not* easy. So far, I've downloaded
two SDKs, trying to get tools (about 1.6GB downloads).
*******
One item I dug up, is an inconsistency between version numbers
on one web site, versus Wikipedia. Wikipedia seems to claim each
version of .NET has its own Common Runtime Language version.
http://en.wikipedia.org/wiki/Dotnet
"1.0 1.0.3705.0
1.1 1.1.4322.573
2.0 2.0.50727.42
3.0 3.0.4506.30
3.5 3.5.21022.8
4.0 4.0.30319.1"
And yet another site, listed the same version number for 2.0, 3.0, 3.5
and claimed they could only be told apart, by the application
probing the registry to see what versions of .NET had been installed.
Which seems to be a rubbish concept.
*******
I downloaded the Filehippo package (FHSetup.exe 252,991 bytes)
Using 7ZIP, I opened the archive, and "UpdateChecker.exe.config"
is a text file of the XML persuasion.
---------------- UpdateChecker.exe.config -------------------
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727" />
<supportedRuntime version="v4.0" />
</startup>
</configuration>
--------------------------------------------------------------
I'm guessing it supports both 2.0 family, or it
supports the usage of 4.0 CLR. There is no other evidence I could
find, that the tool actively looks for 4.0. It appears that 4.0
is an alternative version that could be used (will run with either).
So really, that doesn't tell us anything of value.
I tried dependencywalker tool, but that only checks regular
executables, and it won't plumb the depths of a .NET application.
It still works as a tool - it just doesn't work at the proper
level (.NET is above the level that tool works at).
I downloaded the .NET 2.0 SDK 371,230,904 bytes
http://download.microsoft.com/download/c/4/b/c4b15d7d-6f37-4d5a-b9c6-8f07e7d46635/setup.exe
and without installing it, found a copy of ildasm.exe .
The MANIFEST from the window of that tool, when used to
probe UpdateChecker.exe says this. It still looks like
it needs at least 2.0, judging by the version number.
It also looks like it was written in VisualBasic (the
original programming language, as .NET is language
agnostic and handles multiple languages).
-------------------------------------------------------------
// Metadata version: v2.0.50727
.module extern Kernel32
.module extern gdi32
.module extern user32.dll
.assembly extern mscorlib
{
.ver 2:0:0:0
}
.assembly extern Microsoft.VisualBasic
{
.ver 8:0:0:0
}
.assembly extern System.Windows.Forms
{
.ver 2:0:0:0
}
.assembly extern System
{
.ver 2:0:0:0
}
.assembly extern System.Drawing
{
.ver 2:0:0:0
}
.assembly extern System.Xml
{
.ver 2:0:0:0
}
.assembly extern System.Web
{
.ver 2:0:0:0
}
-------------------------------------------------------------
So I'm no further ahead.
All the evidence I can find, says it only needs .NET.
I'm not seeing anything exotic in there.
I'm still trying to find a tool which will scan a program
and determine the .NET version needed - so far, I can find
commercial software (i.e. trial version that runs for
ten days), so I could use something like that. The commercial
software in question, does a lot more than just probe the
version. It also includes an obfuscator, a tool to jumble
up the code, so hackers can't reverse engineer it. As an end
user, I don't need that, and I just want a simple tool to get
the .NET version. And I'd still getting conflicting advice
on how "precise" the version numbering is with .NET.
One other question for you. Have you rebooted since
installing .NET 2.0 ? Perhaps some part of it is
activated, after a reboot ?
Paul