I have an application I wish to have install silently (Kofax VRS 4.1) This is an install shield setup driven MSI. The setup supports silent installation and allows you to pass parameters to the msi. My problem is one of the property values I wish to set contains spaces. I can edit the MSI and put it in that way but I need to be able to change this value depending on the hardware that the software is going to support. Here is the install string:

setup.exe /S /V"/qr PARTNUMBER1=XX PARTNUMBER2=XXXX PARTNUMBER3=XXXX PRODUCT_CODE=XXXXXXXX SERIALNUMBER=XXXXX SCANNERTEXT=Panasonic KV-S3065CW SCANCOMPEXEPATH=Scanner Drivers\Panasonic\CI-KV-S3065CW.exe"

Adding extra quotes causes syntax errors.

The best solution would have been a transform but the setup.exe is hardcoded to use a transform called 1033.mst and if I try to pass the TRANSFORMS= property it errors out.

Any ideas on this or what the syntax would be for the above install string since I have property values that contain spaces that I cannot change?
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
It should be straightforward enough to use the MSI directly and edit the properties you want in your new transform, as well as including the required transform. What you need to do is find out what property the EXE is using in order to "know" if it was run by Setup.EXE. Normally with IS Setup.EXEs, this is ISSETUPDRIVEN. Setting that property to '1' in your transform fools the MSI into thinking that is was launched by Setup.EXE. In order to find it (if it's not ISSETUPDRIVEN), run Setup.EXE with logging: near the top of the log produced will be a line detailing the command line received by MSIEXEC.
Answered 06/27/2007 by: VBScab
Red Belt

Please log in to comment
0
Does the following work for you ?

setup.exe /S /V"/qr PARTNUMBER1=XX PARTNUMBER2=XXXX PARTNUMBER3=XXXX PRODUCT_CODE=XXXXXXXX SERIALNUMBER=XXXXX SCANNERTEXT=Panasonic KV-S3065CW SCANCOMPEXEPATH=\"Scanner Drivers\Panasonic\CI-KV-S3065CW.exe\""

Regards,

Spartacus
Answered 06/27/2007 by: spartacus
Black Belt

Please log in to comment
0
Thanks Spartacus! That works although I don't understand why and was unable to locate any examples of this.

I couldn't just run the MSI because the setup.exe is running some external executables and I did not wish to repackage this application since it is so complex and already an msi.
Answered 06/27/2007 by: joedown
Second Degree Brown Belt

Please log in to comment
0
What you are doing is simple command line syntax. The backslash acts as a notifier of a special caracter following. If there isn't a special caracter following, it is treated as a regular character.
Answered 06/27/2007 by: KPrinz
Fourth Degree Green Belt

Please log in to comment
0
be careful using the EXE. Your better off extracting the MSI then executing that.

If you use EXE it will extract the source during installation to the TEMP folders. Then set the SOURCELIST to the temp folder.

2 months later some bozo will unknowingly delete the temp folder effectively making your MSI's useless in the terms of self healing.
Answered 06/28/2007 by: jmcfadyen
Fifth Degree Black Belt

Please log in to comment
0
ORIGINAL: KPrinz

The backslash acts as a notifier of a special caracter following.
For the OP, this is known as an 'escape' character. BTW, Jon makes a valid point about the transient nature of your EXE's extraction location. So what if the EXE runs other EXEs: just call those in a CA in a transform applied to the MSI.
Answered 06/29/2007 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity