Archive: Why is this not working?


ExecWait won't pass arguments to relative path?
  I have three installers that install our applications. One works by using web based packages. One is a single huge file. One is a cd based installer.

Web based, downloads SQL Express from website then installs.

  DetailPrint "Pausing installation while downloaded SQL Express installer runs."

ExecWait '$TEMP\\SQLinstaller.exe /qb sapwd=password disablenetworkprotocols=0 securitymode=SQL INSTANCENAME=MSSQLSERVER ADDLOCAL=SQL_Engine'
All-in-one file, extracts SQL Express then installs.
  DetailPrint "Pausing installation while downloaded SQL Express installer runs."

ExecWait '$PROGRAMFILES\\MyAppGroup\\SupportFiles\\SQLinstaller.exe /qb sapwd=password disablenetworkprotocols=0 securitymode=SQL INSTANCENAME=MSSQLSERVER ADDLOCAL=SQL_Engine'
CD Based install, installs SQL Express from CD folder
  DetailPrint "Pausing installation while downloaded SQL Express installer runs."

ExecWait 'prerequisites\\SQLinstaller.exe /qb sapwd=password disablenetworkprotocols=0 securitymode=SQL INSTANCENAME=MSSQLSERVER ADDLOCAL=SQL_Engine'

The first two run the SQL Express installer without requiring any input.

For some reason, the CD Installer runs the SQL Express installer but the arguments are ignored.

I can not find any difference in the three sections besides the path to the file. Will the arguments be ignored because I call the application using a relative path? (the other two examples use a fixed path)

Try putting the full path to the SQLinstaller.exe on the CD as that looks to be the only difference between the ExecWait's.


ExecWait '$EXEDIR\prerequisites\SQLinstaller.exe /qb...'

I don't know whether this applies to SQL Express or not, but I install MSDE2000 (SQL Server Desktop Engine) with our product installation, and MS says that the installer must be copied to the hard drive before you execute it.

If fixing the relative path doesn't work, try copying the file to $TEMP and execute it from there.

Don


thank you
  Changing the call to use $EXEDIR worked.

Seems kinda odd that the installer drops the arguments if the path is relative. Hmm...

Oh well, it works this way.