Windows Server 2012 R2 fails to install .Net Framework 3.5

.Net Framework 3.5 is getting old now and really shouldn’t be installed unless it’s required but if you do need this it’s now a real pain to get installed.

Almost everyone that has had the pleasure of trying to install this feature on Windows 2012 R2 will have found this Microsoft article which basically says that if you’ve already installed 2966827 or 2966828 that the installation will fail. The fix is to remove them before trying the installation again.

Well these patches came out in 2014 and there doesn’t appear to be any update to this guidance. If you look at most new servers you won’t see these patches but just try to install .Net Framework 3.5. It didn’t go very well did it?

When you run the installation it’s trying to find newer file versions which aren’t present on the original source media. It needs these newer versions due to other updates that have been installed. Of course since this is the first time .Net Framework has been installed these files weren’t around to be patched. But it knows that it needs them to remain stable and secure.

If the server is configured to use Windows Update then it will be able to download these files but otherwise the installation will fail.

Tracking down the offending patches

When you run the .net installation it logs the installation in c:\windows\logs\CSB\cbs.log. When the installation fails have a look for something like the following:

CommitPackagesState: Started persisting state of packages
2018-01-29 09:03:42, Info                  CBS    Failed call to CryptCATAdminAddCatalog. [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    Failed to install catalog file \\?\C:\WINDOWS\CbsTemp\30644498_651525325\Package_for_KB4058702~31bf3856ad364e35~amd64~~16299.188.1.0.cat for package [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    Failed to install catalog for package: Package_for_KB4058702~31bf3856ad364e35~amd64~~16299.188.1.0 [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    Failed to stage package manifest. [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    Failed to add package. [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    Failed to persist package: Package_for_KB4058702~31bf3856ad364e35~amd64~~16299.188.1.0 [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    Failed to update states and store all resolved packages. [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CSI    [email protected]/1/29:15:03:42.863 CSI Transaction @0x27adb0b1d50 destroyed
2018-01-29 09:03:42, Info                  CBS    Perf: Resolve chain complete.
2018-01-29 09:03:42, Info                  CBS    Failed to resolve execution chain. [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Error                 CBS    Failed to process Multi-phase execution. [HRESULT = 0x800706be – RPC_S_CALL_FAILED]
2018-01-29 09:03:42, Info                  CBS    WER: Generating failure report for package: Package_for_KB4058702~31bf3856ad364e35~amd64~~16299.188.1.0, status: 0x800706be, failure source: Resolve, start state: Resolved, target state: Staged, client id: UpdateAgentLCU
2018-01-29 09:03:42, Info                  CBS    Not able to query DisableWerReporting flag.  Assuming not set… [HRESULT = 0x80070002 – ERROR_FILE_NOT_FOUND]

In this part of the log you will notice it mentioning KB4058702. This is trying to locate the .Net Framework 3.5 files located in this patch which simply don’t exist. But if you remove this patch and retry you are likely to find another patch being mentioned.

Ultimately I found that the following patches needed to be removed before .Net Framework 3.5 would install but you may find a slightly different list.

  • KB3195792
  • KB4058702
  • KB4040981
  • KB4014505
  • KB4014581
  • KB3048072
  • KB3142045
  • KB3072307
  • KB3188732
  • KB3188743
  • KB3195792
  • KB3210132
  • KB2966828

Once the installation is successful make sure that you reinstall the missing patches again.

Leave a Reply

Your email address will not be published. Required fields are marked *