Deploying Sitecore XP using SIF fails due to retired Microsoft Web Platform Installer


Description

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

[------------------------------- IdentityServer_InstallWDP : WebDeploy -----------------------------------------------]
Install-SitecoreConfiguration : Cannot validate argument on parameter 'Path'. The running command stopped because the
preference variable "ErrorActionPreference" or common parameter is set to Stop: 
The term 'C:\Program Files\iis\Microsoft Web Deploy V3\msdeploy.exe' is not recognized as the name of a cmdlet, function, script file, or operable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

When installing Prerequisites.json, the installed Microsoft Web Platform Installer (WebPI) is used to install Web Deploy 3.6 and URL Rewrite 2.1. Due to the end of Microsoft Web Platform Installer lifecycle, they cannot be installed by WebPI.

If experiencing the "ERROR_SMO_NEEDED_FOR_SQL_PROVIDER" error while installing Sitecore Experience Platform instance, refer to KB1003024.

Solution

To resolve the issue, proceed as follows:

    1. Remove the tasks related to Microsoft Web Platform Installer from Prerequisites.json:
      "DownloadWebPlatformInstaller": {
                  "Type": "DownloadFile",
                  "Params": {
                      "SourceUri": "[parameter('WebPlatformDownload')]",
                      "DestinationPath": "[variable('WebPlatform.Download')]"
                  },
                  "Skip": "[variable('WebPlatform.Version.Compare')]"
              },
              "InstallWebPlatformInstaller": {
                  "Type": "StartProcess",
                  "Params": {
                      "FilePath": "[variable('WebPlatform.Download')]",
                      "ArgumentList": "[variable('InstallArgs')]",
                      "Wait": true
                  },
                  "Skip": "[variable('WebPlatform.Version.Compare')]"
              },
              "InstallWebDeploy3.6": {
                  "Type": "StartProcess",
                  "Params": {
                      "FilePath": "[variable('WebPlatformCmd')]",
                      "ArgumentList": "/Install /AcceptEULA /SuppressReboot /Products:WDeploy36PS",
                      "Wait": true
                  },
                  "Skip": "[variable('WebDeploy.Version.Compare')]"
              },
              "InstallURLRewrite2": {
                  "Type": "StartProcess",
                  "Params": {
                      "FilePath": "[variable('WebPlatformCmd')]",
                      "ArgumentList": "/Install /AcceptEULA /SuppressReboot /Products:UrlRewrite2",
                      "Wait": true
                  },
                  "Skip": "[variable('IIS.UrlRewrite.Version.Compare')]"
              },
    2. Install Prerequisites:
      Install-SitecoreConfiguration -Path .\Prerequisites.json
    3. Download and install Web Deploy 3.6 and URL Rewrite 2.1 tools manually without using Web Platform Installer.