PDA

View Full Version : Multiple Installations in ONE setup



NewsArchive
10-30-1997, 01:00 AM
owner@ellipse-data.com (Stefan Paetow) wrote:
>On Tue, 14 Oct 1997 23:22:58 GMT, g4wfan@cdf.utoronto.ca wrote:
>>Hi, I am trying to create a "Master" Setup that will installs several
>>programs required by the main program; however, I have problems in
>>doing this because some of these programs requires a reboot.
>
>You can call those other setups from your first setup. Then make sure that
>the other setups do NOT have the flag set "Always show reboot dialog" in
>the dialog options - Ideally switch that setup dialog off in the Dialog
>options.
>
>Then just put a tickmark next to that option in the Master Setup.
>
>Stefan
>ellipse data systems

NewsArchive
11-12-1997, 01:00 AM
Allen Strand wrote:

> It will be interesting to see what others come up with here, but I
> suspect your best bet will be to create several nearly identical
> projects. I can envision several ways to do it with one file, but
> most could be error prone i.e. remembering to turn off certain higher
> level components before media build. I will defer to the experts
> here.
>
> However, have you thought about encrypting the data so you can do on
> one CD? That could cut your distribution costs unless the amount of
> data you are releasing exceeds 3GB (650MB per CD * 4/estimated
> compression of 4). Installshield has a neat digital signature scheme
> that you might be able to use to unpack the data.


We had the same problem (developer release/regular release); at first
I attempted a hack solution: write a script that edits one of the
project files as appropriate during automated command line builds of
a copy of the project. In the end however we decided to do it all
at runtime, shipping a single media and switching on and off the
various bits from the setup.rul script. This has the advantage of
keeping all the logic in one place, but does bloat the media if you
are considering delivery via FTP.

As you correctly point out, this method won't work if you're using
a substantial part of the CD, although I think 3GB is pessimistic as
there will surely be optimisations you can make over just reproducing
it four times over.

This is an issue that I think needs to be seriously addressed by IS.

alan

-----------------------------------------------------------------------
Alan Donovan, FORE Audio & Video, 14 Regent Street, Cambridge CB2 1DB
Tel: +44 1223 518325 adonovan@eu.fore.com http://www.fore.com
-----------------------------------------------------------------------

NewsArchive
11-12-1997, 01:00 AM
Yes, I thought about distributing everything as it's not that large (about
20mb per build type) but some of the builds (namely Debug) will not form
part of the final deliverable, so should not go out to the public.

For now, I've hacked four separate IS5 projects (each copied from the
first) which fetch the relevant binaries from the compile area. I'm sure
there must be a better way, but IS5 seems to hold on very tight to some of
the files - various .bmp files, .rul files and so on, and doesn't like
sharing them with other projects.

Some of the replication can be removed in the SourceSafe archive by using
shared files within SS5 - so at least there is only one file to maintain,
but there are still four copies of the files in the working area.

But - nothing is ever ideal is it ?

Thanks for the input ...

- cps -

>
> It will be interesting to see what others come up with here, but I
> suspect your best bet will be to create several nearly identical
> projects. I can envision several ways to do it with one file, but most
> could be error prone i.e. remembering to turn off certain higher level
> components before media build. I will defer to the experts here.
>
> However, have you thought about encrypting the data so you can do on one
> CD? That could cut your distribution costs unless the amount of data you

> are releasing exceeds 3GB (650MB per CD * 4/estimated compression of 4).
> Installshield has a neat digital signature scheme that you might be able
> to use to unpack the data.
>
> Allen Strand
>

NewsArchive
09-11-1998, 12:00 AM
InstallShield Software Corporation wrote:

> You may want to launch such installations from a DLL, which uses
> FindWindow to catch the 3 loops each setup goes through (1 archive
> extraction, 1 setup launch, 1 setup run).

I put the calls to the other installations in a DLL file (using WinExec())
and they start the installations fine, however the next Dialog in the
original installation comes up during (or just before) the sub-installation's
window. This is functional but it may cause some confusion having windows
dialog windows from both installations available.
Is there a way to tell the main installation to wait until the DLL is done?
Before I upgraded to 2.03 I thought there was a selection that asks if you
want the installation to wait until the DLL is finished executing. (however i
could be wrong)

Any help would be greatly appreciated

Mark

NewsArchive
09-11-1998, 12:00 AM
On Fri, 11 Sep 1998 10:53:20 -0500, Mark Bunkowske <mark@coincnx.com>
wrote:
>window. This is functional but it may cause some confusion having windows
>dialog windows from both installations available.
>Is there a way to tell the main installation to wait until the DLL is done?

You can put the DLL in a loop using FindWindow() and then check that the
Window handle you received from FindWindow is valid. Once it is invalid it
means that the application has most probably closed that window and you can
either proceed, or do another loop.

Stefan Paetow
InstallShield Software Corp.

NewsArchive
09-21-1998, 12:00 AM
InstallShield Software Corporation wrote:

> You can put the DLL in a loop using FindWindow() and then check that the
> Window handle you received from FindWindow is valid. Once it is invalid it
> means that the application has most probably closed that window and you can
> either proceed, or do another loop.
>

The handle that FindWindow() returns is only the first window of the setup (the
archive) so after that window closes the loop is broken (FindWindow() is NULL)
and the main window of the setup still needs to be run. This seems to be the
same problem I had before with knowing when all three steps are done (and not
just the first one)
Ive tried WaitForSingleObject() and I cant use WaitForMultipleObjects() because
I dont know the handle for the other two windows.

If I dont know the handles of the last two steps in the installation, how can I
know when they are done so I can proceed with the main installation?

NewsArchive
09-21-1998, 12:00 AM
On Mon, 21 Sep 1998 11:21:34 -0500, Mark Bunkowske <mark@coincnx.com>
wrote:
>and the main window of the setup still needs to be run. This seems to be the
>same problem I had before with knowing when all three steps are done (and not
>just the first one)

You must do 3 loops for each setup. The self-extractor is one, the "Setup
is preparing" window is the second one, and then the actual setup is the
third.

There is a Knowledge Base article (at http://support.installshield.com/kb
under InstallShield3, search for "Ar32" in the title) that discusses how to
run the Adobe selfextracting setup and wait for it using InstallScript. You
can use that code and apply the same principles to writing your own DLL.

Stefan Paetow
InstallShield Software Corp.

NewsArchive
09-22-1998, 12:00 AM
InstallShield Software Corporation wrote:

> There is a Knowledge Base article (at http://support.installshield.com/kb
> under InstallShield3, search for "Ar32" in the title) that discusses how to
> run the Adobe selfextracting setup and wait for it using InstallScript. You
> can use that code and apply the same principles to writing your own DLL.

The code looks to be exactly what I need. However it looks to be necessary to
change the title bar of the main setup window. This (Im pretty sure) is
impossible in Express.
I also seem to be getting strange return codes from FindWindow() but that is
probably beyond the scope of the newsgroup.

If there is a way to change the title could you tell me how?
Thanks

NewsArchive
09-22-1998, 12:00 AM
On Tue, 22 Sep 1998 11:38:37 -0500, Mark Bunkowske <mark@coincnx.com>
wrote:
>If there is a way to change the title could you tell me how?

That unfortunately I don't know.

Stefan Paetow
InstallShield Software Corp.

NewsArchive
09-22-1998, 12:00 AM
On Tue, 22 Sep 1998 11:38:37 -0500, Mark Bunkowske <mark@coincnx.com>
wrote:
>I also seem to be getting strange return codes from FindWindow() but that is
>probably beyond the scope of the newsgroup.

FindWindow returns the HANDLE of the window if it finds it. Otherwise it
returns NULL.

>If there is a way to change the title could you tell me how?

Alternatively you can try and call SendMessage() to send a message to the
first install (the Express install) to change its Window caption.

Stefan Paetow
InstallShield Software Corp.

NewsArchive
09-22-1998, 12:00 AM
InstallShield Software Corporation wrote:

> FindWindow returns the HANDLE of the window if it finds it. Otherwise it
> returns NULL.

Ive tried hWnd1= FindWindow(NULL,"InstallShield Self-extracting Exe");
--which returns something other than NULL all the time (even when the window
closes)
and Ive tried hWnd1 = FindWindow("","InstallShield Self-extractring Exe");
--which always returns NULL
and Ive tried:
GetClassName(pi.hProcess,name,1024);
hWnd1 = FindWindow(name,"InstallShield Self-extracting Exe");
-- which always returns NULL

The actual code that Im using for this function is:

void Execute(const char* s) {
STARTUPINFO si;
PROCESS_INFORMATION pi;
HWND hWnd1,hWnd2,hWnd3,hWnd;
char name[1024];
int exists=1;
memset(&si, 0, sizeof(si));
si.cb = sizeof(si);

if(CreateProcess(NULL,(char*)s,NULL,NULL,TRUE,NORMAL_PRIORITY_CLASS,NULL,NULL,&si,&pi))
{
Sleep(3000);
//GetClassName(pi.hProcess,name,1024);
//hWnd1 = FindWindow(name,"InstallShield Self-extracting EXE");
hWnd1 = FindWindow(NULL,"InstallShield Self-extracting EXE");

while(hWnd1 != NULL) {
if (exists) {
//MessageBox(GetFocus(),"ENTERING_LOOP1","TEST",MB_OK);
exists=0;
}
hWnd1 = FindWindow(name,"InstallShield Self-extracting Exe");
}
//MessageBox(GetFocus(),"LEAVING_LOOP1","TEST",MB_OK);
Sleep(2000);
hWnd2 = FindWindow(NULL,"InstallShield Self-extracting Exe");

if (hWnd2 != NULL) {
hWnd = FindWindow("InstallShield_Win","Setup");

//while(hWnd == NULL) {
//MessageBox(GetFocus(),"ENTERING_LOOP2","TEST",MB_OK);
hWnd = FindWindow("InstallShield_Win","Setup");
//}

hWnd3 = FindWindow("InstallShield_Win","Setup");
while(hWnd3 != NULL) {
//MessageBox(GetFocus(),"ENTERING_LOOP3","TEST",MB_OK);
hWnd3 = FindWindow("InstallShield_Win","Setup");
}
}
}
}

This code is pretty much what you gave me (from the knowledge base) changed from
InstallScript.

I know this problem really has very little to do with InstallShield and more to
do with Windows programming. (I think I broke the cardinal rule of newsgroups (at
least i didnt crosspost))
But if you happen to think of something I would really appreciate any further
ideas you may have. If not, just let the thread die (its long enough already)

Thanks for all the help

Mark

NewsArchive
09-22-1998, 12:00 AM
On Tue, 22 Sep 1998 15:22:43 -0500, Mark Bunkowske <mark@coincnx.com>
wrote:
>Ive tried hWnd1= FindWindow(NULL,"InstallShield Self-extracting Exe");
>--which returns something other than NULL all the time (even when the window
>closes)

You must wait in a loop until this changes (if you call the Acrobat install
with the /sms flag this may hang in there).

I see that your classname is NULL, use the Class Names as specified in the
Knowledge Base article. Those are the classnames for those windows.

>and Ive tried hWnd1 = FindWindow("","InstallShield Self-extractring Exe");
>--which always returns NULL

That will not work because you set the Classname to a string that is NOT
NULL, but doesn't contain anything.

>I know this problem really has very little to do with InstallShield and more to
>do with Windows programming. (I think I broke the cardinal rule of newsgroups (at
>least i didnt crosspost))

Hehehehe... unfortunately I don't know what else to do. You may want to
experiment around with this and see what comes of it.

Stefan Paetow
InstallShield Software Corp.

NewsArchive
04-16-1999, 12:00 AM
Hi,
i just bought InstallShield Express ver2.1 and i am trying to install 3
applications in one setup. I can install the applications in one setup but i
cannot seem to get them in the same folder in the Program menu. any ideas?

NewsArchive
04-17-1999, 12:00 AM
>i just bought InstallShield Express ver2.1 and i am trying to install 3
>applications in one setup. I can install the applications in one setup but
i
>cannot seem to get them in the same folder in the Program menu. any ideas?


Go to Dialog Boxes, Select Program Folder, on the right half there is a tab
"Settings", then in the default program folder text box simply type for your
3 apps the same program menu folder.
Hope it helps.
Sylvain

NewsArchive
04-19-1999, 12:00 AM
Hi Sylvain,

In the settings only specify one folder name. This will be the default
folder. For each
of your program icons make sure that the program folder is set to default
folder.
This is in the advanced tab of the 'Specify folders and icons' dialog. After
doing so
they should be all placed in that folder.

Hope this helps,

Eric
InstallShield Support


Sylvain wrote in message <37180087.0@news.installshield.com>...
>
>>i just bought InstallShield Express ver2.1 and i am trying to install 3
>>applications in one setup. I can install the applications in one setup but
>i
>>cannot seem to get them in the same folder in the Program menu. any ideas?
>
>
>Go to Dialog Boxes, Select Program Folder, on the right half there is a tab
>"Settings", then in the default program folder text box simply type for
your
>3 apps the same program menu folder.
>Hope it helps.
>Sylvain
>
>

NewsArchive
04-19-1999, 12:00 AM
Thanks Eric, again, but it was Joanna's question !
Sylvain

NewsArchive
09-23-1999, 12:00 AM
Which is similar to the method we are using for the time being until there
is a little more support available for patching.

When we issue bug fixes (minor upgrades) we generate a new product guid so
that users can install a bug fixed version in parallel with their current
installed version. (Honestly, some people are so untrusting!!!?)

Graham Allwood

David Thornley <NoReplyPlease@installshield.com> wrote in message
news:37e8f286.0@news.installshield.com...
> The Service identifies an application based on its Product Code. You can
> not have two applications with the same product code on the same machine.
> Therefore, the only solution is to change the product code.
>
> --
> David Thornley
> Lead Developer Support Engineer
> InstallShield Software Corporation
> http://www.installshield.com
>
>
>
> Urs Furrer wrote in message <37e8efcc.0@news.installshield.com>...
> >Is it possible to install an app more than one time ?
> >
> >Is there a command-line argument to force a new installation ?
> >
> >Thanks
> >Urs
> >
> >
>
>

NewsArchive
08-22-2000, 12:00 AM
Thankyou.

Unfortunately this doesn't really solve my problem. What I am after is
something that will allow more than one install from the same setup. I will
produce a setup, put it on a CD then ship it to the customer. The customer
will then use this CD to install the application multiple times.

Is the only way of doing this to write a custom action which generates the
GUID at setup time and if so will this cause any problems with the
uninstall?

Hope someone can help.

Regards,

Kath

"Dave-InstallShield" <supportnews@InstallShield.com> wrote in message
news:39a1a17c$1@12.41.20.38...
> Hi Kath,
> You will find that this issue is fully addressed in knowledge base article
> Q103199.
> Sincerely,
> DaveA
>
> "David Stockford" <david.stockford@inforswan.co.uk> wrote in message
> news:39a110ff@12.41.20.38...
> > Message:
> >
> > I need to be able to run my setup multiple times on the same PC to load
> more
> > than one instance of my application.
> >
> > If I try to do this at the moment, it always brings up the
> > modify/repair/remove dialog.
> >
> > Obviously I still need to be able to run the uninstall, but only if it
is
> > expressly asked for (going into add/remove programs or a seperate entry
in
> > the program menu).
> >
> > Can anyone help??????
> >
> > Kath.
> >
> >
> >
>
>

NewsArchive
08-22-2000, 12:00 AM
Kath,
Please reference the MSI Help library article entitled: product codes
[Windows Installer]

You will that this limitation is a MS Windows Installer service limitation,
and not an InstallShield limit. You cannot dynamically augment the product
code without serious repercussions.
Also, there are features and components to consider.
Sincerely,
DaveA

"kath" <kathryn.gunston@inforswan.co.uk> wrote in message
news:39a26499@12.41.20.38...
> Thankyou.
>
> Unfortunately this doesn't really solve my problem. What I am after is
> something that will allow more than one install from the same setup. I
will
> produce a setup, put it on a CD then ship it to the customer. The customer
> will then use this CD to install the application multiple times.
>
> Is the only way of doing this to write a custom action which generates the
> GUID at setup time and if so will this cause any problems with the
> uninstall?
>
> Hope someone can help.
>
> Regards,
>
> Kath
>
> "Dave-InstallShield" <supportnews@InstallShield.com> wrote in message
> news:39a1a17c$1@12.41.20.38...
> > Hi Kath,
> > You will find that this issue is fully addressed in knowledge base
article
> > Q103199.
> > Sincerely,
> > DaveA
> >
> > "David Stockford" <david.stockford@inforswan.co.uk> wrote in message
> > news:39a110ff@12.41.20.38...
> > > Message:
> > >
> > > I need to be able to run my setup multiple times on the same PC to
load
> > more
> > > than one instance of my application.
> > >
> > > If I try to do this at the moment, it always brings up the
> > > modify/repair/remove dialog.
> > >
> > > Obviously I still need to be able to run the uninstall, but only if it
> is
> > > expressly asked for (going into add/remove programs or a seperate
entry
> in
> > > the program menu).
> > >
> > > Can anyone help??????
> > >
> > > Kath.
> > >
> > >
> > >
> >
> >
>
>

NewsArchive
08-23-2000, 12:00 AM
Thankyou again,

Unfortunately this was not the answer I wanted.

I think this may mean that we have to revert to InstallShield 6 as I believe
this allows you to do multiple installtions.

Thankyou for your time anyway.

Regards,

Kath.

"Dave-InstallShield" <supportnews@InstallShield.com> wrote in message
news:39a2b5ed$1@12.41.20.38...
> Kath,
> Please reference the MSI Help library article entitled: product codes
> [Windows Installer]
>
> You will that this limitation is a MS Windows Installer service
limitation,
> and not an InstallShield limit. You cannot dynamically augment the
product
> code without serious repercussions.
> Also, there are features and components to consider.
> Sincerely,
> DaveA
>
> "kath" <kathryn.gunston@inforswan.co.uk> wrote in message
> news:39a26499@12.41.20.38...
> > Thankyou.
> >
> > Unfortunately this doesn't really solve my problem. What I am after is
> > something that will allow more than one install from the same setup. I
> will
> > produce a setup, put it on a CD then ship it to the customer. The
customer
> > will then use this CD to install the application multiple times.
> >
> > Is the only way of doing this to write a custom action which generates
the
> > GUID at setup time and if so will this cause any problems with the
> > uninstall?
> >
> > Hope someone can help.
> >
> > Regards,
> >
> > Kath
> >
> > "Dave-InstallShield" <supportnews@InstallShield.com> wrote in message
> > news:39a1a17c$1@12.41.20.38...
> > > Hi Kath,
> > > You will find that this issue is fully addressed in knowledge base
> article
> > > Q103199.
> > > Sincerely,
> > > DaveA
> > >
> > > "David Stockford" <david.stockford@inforswan.co.uk> wrote in message
> > > news:39a110ff@12.41.20.38...
> > > > Message:
> > > >
> > > > I need to be able to run my setup multiple times on the same PC to
> load
> > > more
> > > > than one instance of my application.
> > > >
> > > > If I try to do this at the moment, it always brings up the
> > > > modify/repair/remove dialog.
> > > >
> > > > Obviously I still need to be able to run the uninstall, but only if
it
> > is
> > > > expressly asked for (going into add/remove programs or a seperate
> entry
> > in
> > > > the program menu).
> > > >
> > > > Can anyone help??????
> > > >
> > > > Kath.
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>

NewsArchive
12-14-2000, 01:00 AM
On a related topic...

Is it possible, or how do you...

I have many components (objects) that I bundle together in an install. I
have script defined target directories, say ZExe and ZApp. If these are set
in the main install script, will the objects that I include also use them,
or do I need to set them for each object.

If I need to set them for each object.. why? Is there a better way?


"JoeLunchPail" <unlisted@hotmail.com> wrote in message
news:39ff674b@12.41.20.38...
> I'm not sure about using DoInstall(), but to have multiple targets, create
> script defined targets in the file group pane.
>
> Patrik <patrik@NOzezameSPAM.com> wrote in message
> news:39ff4486@12.41.20.38...
> > Hi,
> >
> > Want to do:
> >
> > There are two parts of a installation that I want the user to be able to
> > chose where to install,
> > individually, i.e I want to allow the user to chose to put the database
> and
> > the application in
> > two diferent target directories.
> >
> > Is this possible to do with one installation? I seem to run into trouble
> as
> > soon asd I use the
> > DoInstall command, despite following the instructions on small dummy
> > installations that works
> > fine when runend separately.
> >
> > Any help would be welcome.
> >
> > Thanks
> > Patrik
> >
> >
>
>

NewsArchive
06-19-2001, 12:00 AM
If you have found a solution, could you let me know please.

Thanks,
Eric

"Andrew Morozov" <aemorozov@mail.ru> wrote in message
news:3adc7200@12.41.20.38...
> Hello
>
> I have a problem with multiple installations.
> I mean when I want to install several times the application using one
> setup.exe.
> One way is to change the GUID in runtime but then we can't make upgrade
from
> CD only from add/remove programs applet. The only way I see it is to
> initalizen log file from the script.
> but I do'nt know how to do this.
> If anybody has any idea plase help me
>
> Thank you
>
> Serge
>
>

NewsArchive
10-31-2001, 01:00 AM
I find it hard to believe that there is no way to install multiple times.
I'm trying to install a plugin that could be used with multiple programs and
I definately need to be able to run the installation multiple times on the
same machine.

I guess this calls for a look at other installation programs.

E



"David Thornley" <NoReplyPlease@installshield.com> wrote in message
news:3bd9d105$1@news.installshield.com...
> Installations created with InstallSheild Developer 7 can not be installed
> multiple times to the same machine. The reason is that the Windows
> Installer service registers the product code for an installation with the
OS
> so that it knows how to run in maintenance mode. You *could*
theoretically
> change this product code before each install, but unfortunately I can not
> think of a simple way to do that.
>
> Regards
> David Thornley
>
> "Greg Allen" <gallen@arrayinc.com> wrote in message
> news:3bd98662@news.installshield.com...
> > I have an standard install that I would like to be able to run multiple
> > times on the
> > same machine. I want to install the thing more than once!
> >
> > However, after the first installation, I keep getting the maintence
dialog
> > appearing.
> >
> > Does anyone know of a way to do this?
> >
> > Thanks,
> >
> > -- Greg Allen
> > gallen@arrayinc.com
> >
> >
>
>