I’ve been troubleshooting a program that’s written in a combination of Java and .NET (yes, now I’ve seen everything), and the program misbehaved. It misbehaved a lot, and the vendor was confused too. About four hours in, one of us had the idea to uninstall the .NET Framework 4.0 and install the newest .NET Framework 4.5.1. The 4.5.1 framework is designed to be backwards compatible with multiple predecessors.
It turned out to be the miracle cure that had eluded us.
I’m not really a sysadmin anymore, and I’m several years removed now from my days as an everyday sysadmin, but now I remember that .NET is very cranky. If you don’t have the version installed that a program wants, the program will malfunction in a bad way. And the version you need isn’t always the version the vendor says you need.
Far be it from me to say you should install every version of the .NET Framework all the time just in case you need them, but if a vendor prescribes a specific version, stepping forward or back a version or two probably isn’t a bad troubleshooting step. And while the very early versions were mutually exclusive, recent versions of the framework can coexist, so you can install multiple versions if you’re afraid of breaking stuff, though that can easily get out of control.