Page 1 of 1

Running/Installing a Sybase msi package

Posted: Tue May 24, 2011 8:50 am
by scottob
I need to install the isql.exe application and supporting folders as part of my install. Simply copying the files/folders does not work (isql.exe will not run), but Sybase allows me to create an msi file that will do the process correctly.

The problem I encounter is this, I need to put the Sybase application in a specific location, namely as a subfolder to another folder my InstallAware msi is creating. The InstallAware folder however, is subject to user discretion (via dialog) as to where it will be placed on their system.

Using the (Un)Install command I have not been able to find a way to pass the variable containing the location of the desired subfolder to the msiexec command in a manner that allows it to interpret it. Here is the command I am using, where $MSIPATH$ contains the desired subfolder location.

Install/Remove MSI Package $TARGETDIR$\sqlany12client.msi[ADDLOCAL=ALL SQLANYDIR=$MSIPATH$] (get result into variable SUCCESS)

On the other hand, I am also unable to get the Run Program and Run Program As commands to run msiexec and accept the parameters I am attempting to pass it.

Suggestions?

Scott

Re: Running/Installing a Sybase msi package

Posted: Tue May 24, 2011 9:02 am
by giaviv
Dear Scott,

You should be able to use both the (Un)Install MSI Setup command and the Run Program command with msiexec to install your MSI. But before we figure that one out, lets refer to your first issue of selecting the destination folder.

This parameter is specific to whoever is creating the MSI, and therefore you should contact the vendor of the MSI you are trying to install and ask them if what you want to achieve is even possible. In general, calling msiexec with the INSTALLDIR variable will help you accomplish that (INSTALLDIR="<destination directory>").

Re: Running/Installing a Sybase msi package

Posted: Tue May 24, 2011 12:28 pm
by scottob
giaviv,

Here a link to a post my co-worker made and the response from Sybase. Basically Sybase does allow msiexec to be executed and install their deployment file. An example would be: msiexec /qn /package sqlany12.msi SQLANYDIR=C:\SQLANY12

http://forums.sybase.com/cgi-bin/webnew ... re.general

In case you cannot reach that link, here is what was posted:

From SYBASE
The variable in question would seem to be one only known
to Installaware and (assuming that is the case) that is the tool
that needs to expand it.

After that much would depend upon how Installaware runs
this. If msiexec.exe is being launched from a cmd prompt
then the cmd prompt (or shell being used) would need to
expand that. That is only possible if Installaware is setting
environment variables for use as parameters. [something I
don't know about.] But if Installaware is actually calling the
MSI API directly then there would be no shell involved and
no expansion of parameters would be possible.


http://msdn.microsoft.com/en-us/library ... S.85).aspx
http://msdn.microsoft.com/en-us/library ... S.85).aspx
http://msdn.microsoft.com/en-us/library ... S.85).aspx

Original Post By my co-worker
"Joy" wrote in message news:[email protected]...
> We are using Installaware to deploy a PB app with a Sybase
> 12.0.0 database. We have our msi files created, and go to
> call them from Installaware.
>
> The command that we wish to use allows the user to select
> the folder they want to deploy the SQL Anywhere 12 objects
> to.
>
> So the command in the documentation is
> msiexec /qn /package sqlany12.msi SQLANYDIR=c:\sa12
>
> We are using an Installaware variable for the c:\sa12, and
> are only getting errors. Does the SQLANYDIR parameter
> allow variables? Does anyone have a suggestion for another
> way to accomplish this?
>
> Since we are installing on clients' systems, we do not have
> control over where they want to put our app, and what other
> items they might have - so we want to keep the SQL Anywhere
> exectuables in a folder within our app.
>
> Any suggestions would be great.


One more question, whenever I use the Run Program or Run Program As commands to execute msiexec, it never accepts any of the parameters I attempt to pass to it. It simply opens a window and displays the command and options available to use with it. Like I was asking for help on the command.

Re: Running/Installing a Sybase msi package

Posted: Tue May 24, 2011 1:17 pm
by giaviv
That usually happens when you are misusing the command. Could you paste here your Run Program command line of code?

Re: Running/Installing a Sybase msi package

Posted: Tue May 24, 2011 3:20 pm
by scottob
This is the setup of the variables - and the command

Set Variable MSIERROR to
Set Variable MSIPATH to \SQL Anywhere 12
Set Variable MSIPATH to $TARGETDIR$$MSIPATH$
Run Program msiexec.exe /qn /I $TARGETDIR$\sqlany12client.msi SQLANYDIR=$MSIPATH$,Startup in folder $PROGRAMFILES$ (Wait, get result into variable MSIERROR)

Re: Running/Installing a Sybase msi package

Posted: Wed May 25, 2011 9:31 am
by giaviv
Dear scottob,

Could you please send the entire script that this is on alongside the MSI that you are trying to install to support at installaware.com?

I appreciate your patience.