I am attempting to install .NET 3.5 Framework on a Windows 2012 Essentials server but am running into the following error: HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING
After checking the CBS logs it seems to me that Microsoft-Windows-ServerCore Package~31bf3856ad364e35~amd64~~6.2.9200.16384 is the offending package. Here is a snippet of the logs:
2014-12-03 15:57:55, Info CBS Failed to resolve execution chain. [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-03 15:57:55, Error CBS Failed to process single phase execution. [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]
2014-12-03 15:57:55, Info CBS WER: Generating failure report for package: Microsoft-Windows-ServerCore-Package~31bf3856ad364e35~amd64~~6.2.9200.16384, status: 0x80073701, failure source: Resolve, start state: Installed, target state: Installed, client id: DISM Package Manager Provider
2014-12-03 15:57:55, Info CBS Not able to query DisableWerReporting flag. Assuming not set... [HRESULT = 0x80070002 - ERROR_FILE_NOT_FOUND]
2014-12-03 15:57:55, Info CBS Added C:\Windows\Logs\CBS\CBS.log to WER report.
EDIT: After reviewing the CBS logs more carefully, the actual error seems to be that the server is trying to install a Spanish version of .NET
2014-12-10 08:53:39, Error CSI 0000000b (F) HRESULT_FROM_WIN32(ERROR_SXS_ASSEMBLY_MISSING) #623199# from Windows::ServicingAPI::CCSITransaction::ICSITransaction_PinDeployment(Flags = 0, a = Microsoft-Windows-NetFx3-Deployment-LanguagePack, Version = 6.2.9200.16384, pA = PROCESSOR_ARCHITECTURE_AMD64 (9), Culture = [l:10{5}]"es-ES", VersionScope = 1 nonSxS, PublicKeyToken = {l:8 b:31bf3856ad364e35}, Type neutral, TypeName neutral, PublicKey neutral, cb = (null), s = (null), rid = [93]"Microsoft-Windows-NetFx3-Server-OC-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384.NetFx3", rah = (null), manpath = (null), catpath = (null), ed = 0, disp = 0)[gle=0x80073701]
"Microsoft-Windows-NetFx3-Server-OC-Package~31bf3856ad364e35~amd64~es-ES~6.2.9200.16384.NetFx3"
I found a solution to my problem. To elaborate on my edit that I made earlier today, the CBS logs showed that DISM was attempting to install both the english and spanish version of .NET 3.5 framework, below give you a better idea about whats going on.
In the above output you can see that it is erroring out on only the spanish packages. I checked the location where language resources should be stored "C:\Windows*Language* and found that there was a folder for the Spanish language pack, "C:\Windows\es-ES", however the folder was empty. With that information it was pretty clear that a language pack had ether been removed incorrectly or the installation attempted and never finished. Ether way, the easiest solution I came up with was to just re-install the correct language package to include the necessary dependancies for what ever DISM needs.
The steps that fixed my issue was as follows:
Execute the following command to install the required language pack. The command provided will install the Spanish language pack, you should modify it according to your specific instance
Note: "E" is the drive letter that windows decided to mount the ISO on, your milage may vary.
Once the language pack is installed your server will reboot.