Background
Whilst installing SQL Server 2012 onto a new Windows 10 laptop, the SQL 2012 installation returned an error 0x800F081F.
Installation for SQL 2012 can continue but only the shared components are installed.
I’ve found a large number of different articles relating to this but had to piece a few together to eventually resolve this – so I’m piecing them together here in a short article.
Sequence of events
Firstly – although I have a licensed copy of Windows 10, I did not have the Windows 10 installation media when I encountered this error, so installing .Net 3.5 from that was not an option.
I then located the download for .Net 3.5 but this also failed, with a message that implied it could not find the appropriate files (even though the download should contain everything required).
Having looked at the error log it produced at C:\Windows\Logs\DISM there were messages that implied the downloaded application should be an image or suchlike:
“The filename, directory name, or volume label syntax is incorrect.”
And
“[C:\] is not a WIM mount point.”
So, the installation is looking in the wrong place for the required media.
I have no installation media and the executable download for .Net 3.5 doesn’t appear to work either.
Media Creation Tool
At this point I found an article that lets you create an installation media from the Windows 10 that you have installed, with the Microsoft Media Creation Tool – https://www.microsoft.com/en-gb/software-download/windows10.
Change Local Group Policy
Then, having created the media, mount the image file and change the local group policy, as explained in ‘Solution 6’ of https://windowsreport.com/net-framework-3-5-missing-windows-10/ ensuring that you also set the ‘Alternate Source File Path’ to the ‘Source\SXS’ folder, so the installation for .Net 3.5 knows where to look.
Then add the feature to Windows 10 – https://docs.microsoft.com/en-us/dotnet/framework/install/dotnet-35-windows-10
Having completed these steps I was able to repair the SQL Server 2012 build, which completed successfully.