A few weeks back, Joel Spolsky wrote a timely piece entitled Please Sir, May I Have A Linker? bemoaning the current state of affairs with .NET, in its requirement for an installed runtime.

Runtimes are a problem, much like DLLs, because you can get into trouble when application version 1 was designed to work with runtime version 1, and then runtime version 2 comes out, and suddenly application version 1 doesn't work right for some unpredictable reason.

Now this really makes sense, especially with regards something like .NET: Microsoft have a habit of releasing patches and tweaks like there’s no tomorrow after all. Anyway, today I downloaded a wee app that was supposed to install an add-on to my WinXP task bar. But this is what I got upon running the setup executable:

.NET version error

Note the wording: “ …this setup requires…” — the .NET installer is the culprit here, nothing to do with the damn application!


  1. The message is merely telling you that the application/plug-in (or the set-up project for same) was written as managed code, and needs the framework (and the global assembly cache, likely) in order to be installed. In other words, it's the developer and not Microsoft that's responsible for this bit. (Done it myself, Ben -- that's how I know.) The version number simply means that earlier versions may not work -- later versions of the runtime haven't been a problem for me so far, but I have to confess that my code hasn't gotten anywhere near the iron yet (no managed DirectX or anything like that).Stan Rogers#
  2. If a little widget in the task bar asks for the framework, you may want to call in more memory. :-)Volker Weber#
  3. I thought 640KB would be enough for anyone?

    :-D Ben Poole#
  4. I think the annoying part is that the software download didn't mention you need the .NET runtime to install the software. The runtime itself can't be blamed for that.

    The linker argument is an interesting one. In general, a framework developer is going to jump through hoops to maintain backwards compatibility (especially as the platform matures). This is true for most other runtimes (for example, Java or Lotus Notes). The beauty is that your code can take advantage of advances in the runtime system without changing anything. So, if they improve performance in the Java runtime, your code will improve automatically. Of course, any change can introduce bugs. Methinks Joel's being a bit of a control freak in this case.Nik Shenoy#
  5. We went to the Moon with 64k.
    :)Brian Green#

Comments on this post are now closed.


I’m a software architect / developer / general IT wrangler specialising in web, mobile web and middleware using things like node.js, Java, C#, PHP, HTML5 and more.

Best described as a simpleton, but kindly. You can read more here.