An application which made use of functionality included
in the VB5 runtime didn't run on a system which had
only the VB4 runtime installed.
Yes, but the VB5 runtime (and the VB6 runtime) are both less than 2 MB and
are, as far as I am aware, present by default on all standard installations
of Win XP upwards and are in any case easily redistributable. You certainly
cannot say the same for the various variants of the net framework!
In .NET, there is even some kind of cross-version compatibility.
An application compiled against .NET Framework n will run on
systems which have .NET Framework m (m >= n) installed,
and it may run on systems which only have .NET Framework
o (o < n) installed if only the subset of functionality provided
by the "older" version of the .NET Framework is used by the application.
Nevertheless, there are some exceptions to
these rules.
What you have just described is a complete mess. I would much sooner be
clear on exactly what is required and have a definite "No" instead of all
this "maybe, possibly, yes but only if . . ." stuff. We were promised that
dotnet would fix all the Classic Visual Basic "DLL Hell" for us, but instead
it has just made matters worse. I was rather hoping for a system such as I
believe Delphi to be (or perhaps to have been before they too moved down the
dotnet road) where in Delphi you could compile an app and the compiled exe
would be completely self contained and would run on whatever machine you
threw it at (at least that's how I understood Delphi to have worked). But
Micro$oft have not done that. They have replaced DLL Hell with an even worse
Hell in which everyone in the world has to rely on a fast broadband
connection to the Micro$oft servers for anything to work at all! I suppose
that is to be expected from a company that is heading full speed down the
road to what they believe is their own rental heaven, but it really is very
disappointing.
Mike