I've seen a number of people bringing this message up in the forums recently so I thought I would blog about it rather than type the answer over and over. (I'm lazy that way.)
Problem
When you run the installer you get the following error after the download of the SQL Server 2008 Express installation package:
An error occurred during the installation of SQL Server 2008 Express.
The downloaded file appears to be corrupt.
If you view the log you see an error that looks something like this:
Verbose: [T3][19:57:41. 91] ComponentInstaller.Install Start
Info: [T3][19:57:41. 92] ComponentInstaller.Install Preparing to install SQL Server 2008 Express with Advanced Services.
Verbose: [T3][19:57:41.136] ComponentInstaller.ValidateFile Start
Info: [T3][19:57:41.136] ComponentInstaller.ValidateFile Validating SQLEXPRADV_x64_ENU.exe.
Verbose: [T3][19:57:41.198] ComponentInstaller.GetFileCertificate Start - file=C:\ProgramData\Microsoft\SQL Server 2008 Express Install\Downloads\SqlExpressWithAdv\SQLEXPRADV_x64_ENU.exe
Warning: [T3][19:57:41.443] ComponentInstaller.GetFileCertificate Failed to parse certificate in SQLEXPRADV_x64_ENU.exe: System.Security.Cryptography.CryptographicException: Cannot find the requested object.
at System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)
at System.Security.Cryptography.X509Certificates.X509Utils._QueryCertFileType(String fileName)
at System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags)
at Microsoft.SqlServer.SqlExpressWrapper.Controller.ComponentInstaller.GetFileCertificate(String file)
Verbose: [T3][19:57:41.948] ComponentInstaller.GetFileCertificate End - returned NULL
Warning: [T3][19:57:41.949] ComponentInstaller.ValidateFile File validation FAILED (certificate could not be obtained from file).
Verbose: [T3][19:57:41.949] ComponentInstaller.ValidateFile End - returned False
Verbose: [T3][19:57:41.991] ComponentInstaller.Install End - returned [ExitCode=0, Success=False, Action=RetryDownload, MessageStringId=]
Error: [T3][19:57:42.276] InstallController.InstallComponents Error: Microsoft.SqlServer.SqlExpressWrapper.Controller.InstallException was thrown: The downloaded file appears to be corrupt.
Source: SqlExpressWrapper
Stack: at Microsoft.SqlServer.SqlExpressWrapper.Controller.ComponentInstaller.Install()
at Microsoft.SqlServer.SqlExpressWrapper.Controller.InstallController.InstallComponents()
Cause
This is typically caused by a problem during the download process that results in the file saved to your disk being corrupt.
Resolution
Often this problem is resolved by simply hitting the Try Again button. If the problem was a dropped line or some noise on your connection it is usually transient and the next download will work fine.
In cases where you get the error a second time, or when you have a low bandwidth connection so you don't want to risk waiting through the second download just to get another error you should clear the cache to make sure that you don't have a partial download stuck on your hard drive. You will need to clear two folder locations to be sure you're starting clean:
Once you've removed the files from the Temp directory and the Download Cache, run the Express Installation Package again and you'll be assured to get a new file from the Microsoft Download Center this time. This is one of those cases where Windows is sometimes too smart for its own good, it's trying to save you time by restarting a failed download where it left off, but in this case it can't restart correctly.
If you continue to get the corruption error after this you may be experiencing a different problem. If this is the case there are two things you can do:
- Mike