I got an issue today related to the MSDeploy version installed in the server.
The same project build in machine 1 generates this section (I took this from the Web Deployment Package generated by VS2010):
@rem --------------------------------------------------------------------------------- @rem if user does not set MsDeployPath environment variable, we will try to retrieve it from registry. @rem --------------------------------------------------------------------------------- if "%MSDeployPath%" == "" ( for /F "usebackq tokens=1,2,*" %%h in (`reg query "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy" /s ^| findstr -i "InstallPath"`) do ( if /I "%%h" == "InstallPath" ( if /I "%%i" == "REG_SZ" ( if not "%%j" == "" ( if "%%~dpj" == "%%j" ( set MSDeployPath=%%j ))))))
And in machine 2:
@rem --------------------------------------------------------------------------------- @rem if user does not set MsDeployPath environment variable, we will try to retrieve it from registry. @rem --------------------------------------------------------------------------------- if "%MSDeployPath%" == "" ( for /F "usebackq tokens=2*" %%i in (`reg query "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1" /v InstallPath`) do ( if "%%~dpj" == "%%j" ( set MSDeployPath=%%j ))) if not exist "%MSDeployPath%\msdeploy.exe" ( echo. msdeploy.exe is not found on this machine. Please install Web Deploy before execute the script. echo. Please visit http://go.microsoft.com/?linkid=9278654 goto :usage )
Machine 1: "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy"
Machine 2: "HKLM\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\1"
If I try to install the package in a server wich contains only MSDeploy v2, Machine 1's package works and Machine 2's package doesn't.
BTW: Machine 1 and 2 are build controllers.
I compared the software in both machines, and they have almost the same setup:
VS2010 ultimate
Same service packs
Web Deployment Tool (1.0)
I want to understand why there is this difference, if anyone know what could be the real difference in the servers.