cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
m_rudolph
Level 6

3rd Party Installer (LAAW)

I have an installscript project which calls a (somewhat out of date) installation for a UniVerse IBM ODBC driver using LaunchAppAndWait();

On some test machines, the installer defaults to H:\IBM. It should be C:\IBM. On other machines it defaults to C:\IBM.

We have a domain setup where every user has an H: drive as a default share for their user name. Our command prompts open up defaulted to H:

I've tried using...

ChangeDirectory( TARGETDIR ^ "\\SetupTemp\\ODBCCLI\\" );
szPath = TARGETDIR ^ "\\SetupTemp\\ODBCCLI\\";
LAAW_PARAMETERS.lpCurrentDirectory = &szPath;


...prior to calling LAAW. I don't know if that's the intended usage of ChangeDir though. In any event, it doesn't seem to help.

While I suspect this may not be an issue in the real world, QA isn't happy.

Anyone seen this behavior or have any possible solutions to this?
Labels (1)
0 Kudos
(7) Replies
esiemiat
Level 9

What was the ODBC installer written in? Does it open the CMD console or do you? How are you running the other installer silently?
0 Kudos
m_rudolph
Level 6

It looks like InstallShield, non-MSI.

Their Setup.exe doesn't offer any silent arguments.
0 Kudos
esiemiat
Level 9

If its an InstallShield Installscript install you should be able to record answers to the dialogs using the /R switch. The you can modify the ISS file to adjust that install's target folder at runtime. That is of course if that installer presents a dialog to select the install location.
0 Kudos
m_rudolph
Level 6

It does prompt for an install location.

I'll give that a try and post the results.

Thanks for the help!
0 Kudos
m_rudolph
Level 6

Bummer. /s f1"InstallSource\setup.iss" doesn't work. I get:

[InstallShield Silent]
Version=v7.00
File=Log File
[ResponseResult]
ResultCode=-3
[Application]
Name=UniVerse ODBC Driver
Version=4.0
Company=IBM
Lang=0009

-3 Required data not found in the Setup.iss file.

The .iss it generates gives me:

[CODE][InstallShield Silent]
Version=v7.00
File=Response File
[File Transfer]
OverwrittenReadOnly=NoToAll
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-DlgOrder]
Dlg0={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdWelcome-0
Count=9
Dlg1={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdShowInfoList-0
Dlg2={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdAskDestPath-0
Dlg3={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdComponentDialog2-0
Dlg4={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-AskOptions-0
Dlg5={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdSelectFolder-0
Dlg6={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdStartCopy-0
Dlg7={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdFinish-0
Dlg8={51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdFinishReboot-0
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdWelcome-0]
Result=1
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdShowInfoList-0]
Result=1
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdAskDestPath-0]
szDir=C:\IBM\UniDK\UniVerseODBC
Result=1
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdComponentDialog2-0]
ODBCDriver-type=string
ODBCDriver-count=1
ODBCDriver-0=ODBCDriver\New ODBC 3.51 1
Component-type=string
Component-count=5
Component-0=UCITool
Component-1=ODBCDriver
Component-2=DeeBeeSpy
Component-3=OnlineDoc
Component-4=JRE
Result=1
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-AskOptions-0]
Result=1
Sel-0=0
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdSelectFolder-0]
szFolder=IBM U2\UniVerse ODBC Driver
Result=1
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdStartCopy-0]
Result=1
[Application]
Name=UniVerse ODBC Driver
Version=4.0
Company=IBM
Lang=0009
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
[{51666EF5-0BEB-11D4-8E10-0000E84E5C56}-SdFinishReboot-0]
Result=1
BootOption=0
[{8AE661B1-6E2D-4969-941F-E84DA08C791D}-DlgOrder]
Count=0
[{920DFE60-76CF-4ABF-B101-36C3BEAA5AEC}-DlgOrder]
Count=0
[{D0594525-9819-4871-83B0-C053F4FBDA7A}-DlgOrder]
Count=0
[/CODE]

I made sure to install it with /r and then uninstall it followed by installing with /s too. I'm wondering if the fact that IBM uses two finish dialogs says that they are forcing SdFinishReboot rather than letting IS detect a reason to do it. You always get Finish and FinishReboot in their installer.

Also curious why Count=9 is between dialog definitions.
0 Kudos
esiemiat
Level 9

ErrorCode -3 means that a dialog is getting displayed in silent mode that you did not account for in your ISS file. Run the setup on that computer again to see if anything has changed now that you have installed it once. I have found that the FinishReboot and Finish dilaogs are the biggest culprits in this instance.

As a workaround I add both to the ISS file. Here is a sample ISS file with only the relevant sections. To get both sections I record the isntall twice, once for a reboot system and once for a non-reboot system, then combine the differences.

[CODE]
[{852D5643-A4AE-4681-A2B3-8F53DE60996C}-DlgOrder]
Dlg0={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdWelcome-0
Dlg1={852D5643-A4AE-4681-A2B3-8F53DE60996C}-AskText-0
Dlg2={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdLicense-0
Dlg3={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdAskDestPath-0
Dlg4={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SetupType-0
Dlg5={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdComponentTree-0
Dlg6={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdStartCopy-0
Dlg7={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdFinishReboot-0
Dlg7={852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdFinish-0
Dlg8={852D5643-A4AE-4681-A2B3-8F53DE60996C}-AskYesNo-0
Dlg9={852D5643-A4AE-4681-A2B3-8F53DE60996C}-MessageBox-0
Count=10

[{852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdFinishReboot-0]
Result=1
BootOption=0

[{852D5643-A4AE-4681-A2B3-8F53DE60996C}-SdFinish-0]
Result=1
bOpt1=0
bOpt2=0
[/CODE]
0 Kudos
m_rudolph
Level 6

After some more testing, it seems that launching Setup.exe manually in Windows Explorer, sets the install path correctly. If InstallShield launches it with LAAW, or if I use a batch file to call Setup.exe, it sets the install path to H:.

Very strange indeed.
0 Kudos