1

I'm using SIF to install Sitecore 10.2 on a scaled environment, I'm facing the issue while trying to install the CM role on the CM server, and part of the installation is to deploy the databases on a separate dedicated db server.

I've filled in the sitecore-Xp1-cm.json file and tried running it with SIF multiple times, the first part goes through then the below error shows up:


>  [WebDeploy]:[Path] C:\Program Files\iis\Microsoft Web Deploy
> V3\msdeploy.exe Info: Adding sitemanifest (sitemanifest). Error count:
> 1. Error Code: ERROR_SMO_NEEDED_FOR_SQL_PROVIDER More Information: The SQL provider cannot run because of a missing dependency. Please make
> sure that Microsoft SQL Server Management Objects (Version 10 or
> higher) is installed.  Learn more at:
> http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_SMO_NEEDED_FOR_SQL_PROVIDER.
> Install-SitecoreConfiguration : Command C:\Program Files\iis\Microsoft
> Web Deploy V3\msdeploy.exe returned a non-zero exit code - (-1) At
> line:1 char:1
> + Install-SitecoreConfiguration -Path sitecore-XP1-cm.json
> + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
>     + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Install-SitecoreConfiguration

Things I have tried so far:

  1. ran the prerequistes.json file, which turned out to be unreliable since Web Platform Installer has been retired in December 2022 (reference answer here)
  2. manually reran all the installations of the prerequisites as per the official sitecore documentation, and following the recommendations of this sitecore support blog->

Everything is being run as administrator, I have SQL Server 2019 on my DB Server.

Every thread I follow online says I need to Install the latest version of SMO using Web Platform Installer, but it's been retired last year and I cannot find it anywhere,

So my question is: How can I install SMO without the retired Web Platform Installer?,and should it be installed on the CM server only or on any other servers I will need in my scaled setup? (e.g. CD, processing, even the DB server itself, etc.)?

1

3 Answers 3

1

For your second question, i.e. "should it be installed on the CM server only or on any other servers I will need in my scaled setup?"

The answer is it depends on how you install your scaled setup. If you are installing all the roles on a single server and then distributing the things on others then you only need to install it on your CM instance.

But if you are installing things specific to each server role then you need to install it on each server. The thing is this is a prerequisite tool and you can get an error while installing Sitecore package on different servers.

For your first question, yes you need to install it manually by using this link.

https://www.microsoft.com/en-us/download/details.aspx?id=56833

So once you click on the "Download" button, you will be prompted to select the files you need. And you need to select the following two.

  • ENU\x64\SQLSysClrTypes.msi
  • ENU\x64\SharedManagementObjects.msi

Hope this helps.

1
  • Thank you this worked! I'll add an extra note that I had to install both the x64 and x86 versions of both files, but after that it worked like a charm :) Apr 16 at 11:29
1

I know I already share it as a link in the comment. However, for better reach to the community posting as an answer. It could be one of the potential solutions.

Sitecore installation requires the MS SQL 2016 Server SMO. In order to do this, you must download both.

ENU\x64\SQLSysClrTypes.msi

ENU\x64\SharedManagementObjects.msi

From Microsoft® SQL Server® 2016 Service Pack 2 Feature Pack

Reference Links:

  1. Sitecore 10 Scaled Install -- SMO error
  2. Hiccups during Sitecore 9 XP0 Installation on a server

Hope it helps!

1
  • Thank you Sumit! this worked for me :) , my only note is that I had to install both x64 and x86 versions of both msi files Apr 16 at 11:29
0

This is a shot in the dark, if it doesnt help I can delete.

So I checked a VM that I have used previously to run a similar SIF install. When I review program files here:

C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies

C:\Program Files (x86)\Microsoft SQL Server\110\SDK\Assemblies

I can see the Microsoft.SqlServer.Smo.dll and many other sql related assemblies.

Now, when you try to find info from microsoft about SMO, it seems to point towards using nuget packages to provide any applications wanting to use these tools with the correct binaries.

So if you go to here:

https://www.nuget.org/packages/Microsoft.SqlServer.SqlManagementObjects

Then download the latest package.

Change the file extension to .zip. You will find a bunch of binaries, including the Microsoft.SqlServer.Smo.dll one. My guess is that the web platform installer does a similar thing and then unloads them to these locations.

My suggestion owuld be to try the same and see if it gets you past that point in the installation.

Alternatively

If SMO is only required for the installation procedure, you could try manually installing the databases via DACPAC (which you can find if you unpack the web depoy packages.

Then pass in the SkipDatabaseInstallation parameter when running the SIF command.

1
  • Thank you Dean, the other solutions worked for me but this might help other people facing the issue too :) Apr 16 at 11:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.