Windows loves to throw endless curve balls to us administrators.
The latest? Server Manager would throw an exception - 0x80073701 - and refuse to install various features as a result. Most notably, this seems to occur with any feature that use .NET (such as the framework itself, or Group Policy Management Console).
We went on the usual adventures into c:\windows\logs\cbs\cbs.log to look around, and found all sorts of errors. Uninstalled some patches that looked questionable, ran the
Further examination of the cbs.log found some references to language packs that the Windows Installer couldn't find.
This is a US English version of Windows, with nothing much special installed.
Sure enough, we found Spanish and Japanese display languages were somehow installed on the server!
Removing these has resolved our issues, and the features and roles now install normally.
How? From the start screen or Run dialog type:
(yes, it's hidden by default).
A dialog will open where you can verify and remove languages.
We've yet to figure out how these languages got onto the system, or why they would cause problems, as it was our understanding the whole component language nature of Windows - particularly in the 8/2012 era - was to resolve all this mess.
As usual, with most things Windows Installer, it just ends up causing a bigger headache. We can't help but still think the Component Store/WinSxS continues to be one of the worst engineered parts of Windows.
In another case we found we had to actually install a language pack, in order to get the right packages onto the system so that the feature addition would complete. The cbs.log file showed missing packages with KO-KR in the name. This indicated the installer was looking for Korean language pack files.
A quick trip to Control Panel-Clock, Language and Region-Add a Language and we could select and then install the Korean language. Tip: double click on the language when it's added to the list to auto-download from Microsoft.