ERROR_SMO_NEEDED_FOR_SQL_PROVIDER error when installing Sitecore Experience Platform


Description

Installation of a clean Sitecore Experience Platform instance with Sitecore Installation Framework (SIF) might fail with the following error:

[-------------------------------- XP1Collection_InstallWDP : WebDeploy -----------------------------------------------]
[WebDeploy]:[Path] C:\Program Files\iis\Microsoft Web Deploy V3\msdeploy.exe
msdeploy.exe : Error Code: ERROR_SMO_NEEDED_FOR_SQL_PROVIDER
At C:\Program Files\WindowsPowerShell\Modules\SitecoreInstallFramework\2.3.0\Public\Tasks\Invoke-CommandTask.ps1:31 
char:13
+             & $Path $Arguments | Out-Default
+             ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Error Code: ERR...OR_SQL_PROVIDER:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
 
...

The issue occurs due to missing SQL Shared Management Objects (SMO). Starting from SQL Server 2017, SMO is not included in the SQL Server installation package and it is distributed separately. 

Solution

For successful Sitecore Experience Platform installation, you can download and install both the x64 and x86 versions of the following files (4 files in total) from Microsoft® SQL Server® 2016 Service Pack 2 Feature Pack before you install a Sitecore instance: