UPDATE: Dec 2016 – While the process below works very well, you can eliminate future .NET install problems by installing FEATURES ON DEMAND on your companies WSUS server.
If you are unable to install .NET 3.5 on Windows 8 or 8.1 and end up with errors like 0x800F0906 and 0x800F081F you will find that errors relate to corrupt or limited access to the source files. In ALL of the times I have tried to get around this, the source has NOT been the issue.
Often you can just install .NET 3.5 by bringing up a CMD window (don’t forget to right click and RUN AS ADMININISTRATOR) and then type either:
Dism /online /enable-feature /featurename:NetFx3 /All /Source:<drive>:\sources\sxs /LimitAccess
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
In my most recent situation I would then error out with 0x800F081F and the logs would show:
2014-09-10 19:07:54, Error DISM DISM Package Manager: PID=5116 TID=4028 Failed finalizing changes. – CDISMPackageManager::Internal_Finalize(hr:0x800f081f)
2014-09-10 19:07:54, Error DISM DISM Package Manager: PID=5116 TID=4028 The source files could not be found; their location must be specified using the /source option to restore the feature. – GetCbsErrorMsg
2014-09-10 19:07:54, Error DISM DISM Package Manager: PID=5116 TID=4028 Failed processing package changes with session options – CDISMPackageManager::ProcessChangesWithOptions(hr:0x800f081f)
2014-09-10 19:07:54, Error DISM DISM Package Manager: PID=5116 TID=4028 Failed ProcessChanges. – CPackageManagerCLIHandler::Private_ProcessFeatureChange(hr:0x800f081f)
2014-0910 19:07:54, Error DISM DISM Package Manager: PID=5116 TID=4028 Failed while processing command enable-feature. – CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x800f081f)
If this is your case, then .NET may have been patched on your machine… but wait, you say, it is not installed so how could it be patched… that is a good question. If you look at your WINDOWS UPDATES > HISTORY, you may see some .NET 3.5 patches that have been installed. If that is the case go to PROGRAMS AND FEATURES > VIEW INSTALLED UPDATES (from the menu on the top left) and find them by KB number. Note that I have found the names of the patches Windows Update History do NOT match what is in INSTALLED UPDATES… go figure.
Specifically I suggest you look for (and uninstall) KB2966826 & KB2966828 . In my most recent case I only found KB2966828 but after I uninstalled it and rebooted (yes, the reboot was necessary) I could install .NEt3.5 on my Win8 PC.