So – interesting bug.
Built some Windows Server 2012 R2 servers for someone (because I’m just nice like that) and they went on their merry way. They then came back and said they wanted .NET 3.5 installed and would do it themselves, but they didn’t know where the install media was – because (as you know…or now know) a number of features for Server 2012 R2 can only be installed from media now, saving you precious disk space.
Figured it’s a quick enough job, I’ve done it before, can easily do it!
Jumped onto the servers, connected to the install media and went about adding in the .NET 3.5 feature.
Yeah…no.
It wouldn’t install. No matter what I tried, it wouldn’t install. I tried three different sets of installation media, still no dice. I tried remove the local group policies from the machine (in case it was our WSUS settings that were causing issues) and it still wouldn’t install. the local DISM command provided the same error.
I was utterly stumped.
Asked a colleague if they’d seen it before and they went through the same process as me – different sources, checking the sources, making sure the feature wasn’t installed etc. Still no luck.
We check Windows Updates and can see that this server has successfully updated against our WSUS server, so it’s certainly not that.
There was some vague recollection of an issue with Server 2012 (not R2) and Exchange 2013 which meant that all previously installed Windows updates needed to be removed so that the Desktop Experience could be installed and all the updates put back on so that Exchange could then be installed, as it required the Desktop Experience.
Knew it was a long shot, but thought it was worth a go. So, we check the installed Windows Updates and found a rather interesting one:
“Security Update for Microsoft .NET Framework 3.5 on Windows 8.1 and Windows Server 2012 R2 for x64-based Systems – KB2966828”
Yes, folks, you’re reading that right. An update for 3.5 even though 3.5 isn’t even installed >.<
My crankiness at this point knew no bounds – how the hell had this update applied when the feature it was meant for wasn’t enabled or even bloody installed?!
So I removed the update. And, once again, attempted to install .NET 3.5 from source media.
Well, funny that, it installed perfectly fine.
Sometimes Windows really does make me want to pull my hair out in frustration and scream.
TL;DR for those coming here for an answer – uninstall KB2966828 then attempt the install of .NET 3.5 from your install media.