Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Setup.exe


4 replies to this topic

pdriley

pdriley
  • Members
  • 91 posts

Posted 26 November 2001 - 16:30

I'm hoping that someone here has had some experience figuring out the problems I'm having and can give me a hint... buckle up guys, this is going to get complicated.

Initial Problem: A need to provide users with a single setup.exe that will install the MSI Engine before the software.

Initial Solution: Build the installer with Setup.exe options switched on.

No problem, right?  We're already agreed on WI2.0 (and ISD7.01) because it can install that and the software with only one reboot.

Well, yes, unfortunately there is a problem in our case...

We need for the user to be able to "drop" certain custom support files (eg. CLIENT32.INI) into the same directory as the installer which then get copied over the basic ones in the pack at install time (we have a nice DLL to do this for us).

Setup.exe creates the MSI in a temporary directory and at no point in the MSI can you establish where the original setup.exe (and thus the support files) is located.

After some digging, we came to the conclusion that the best answer to this problem was to use the Setup.exe found in ...\Installshield\Developer\Redist\Language Indepandant\i386

This is very undocumented, but in theory it should install an MSI engine file from pretty much anywhere... it's own directory, the internet, whatever... then go ahead and run your installer from the local current directory.  From there, we can pick up the support files we need.  Perfect... or at least, so you'd think.

We've set it up (so to speak), despite the lack of documentation so that it at least runs.  SETUP.INI looks like this...

---SETUP.INI---
[Info]
Name=OurProductName
Version=9.99
DiskSpace=2887;DiskSpace requirement in KB

[Startup]
SuppressWin2k=Y
CmdLine=
Product=OurProductName
PackageName=OurProductName.MSI
MsiVersion=2.0.2600.0
EnableLangDlg=N

[Languages]
count=1
default=409
key0=409
---SETUP.INI---

We also have the 0x0409 pack of error messages from the redistributable area copied to the same directory.

Problem is that if we run this, rather than upgrading the Engine as expected, it throws a message saying "Windows® Installer xxx Found. This is an older version of the Windows® Installer. Click okay to continue."

[xxx = the full version number or even blank ("") where there is no Windows Installer installed]

Well, duh?  I know it's an older version... that's why I want you to install this lovely shiny new one I have for you.

If I drop the version inside the SETUP.INI to a figure less than the MSI Engine installed on the PC, it happily ignores the Engine and continues okay.

Of course, when it gets to the .MSI file, it then fails because the Schema is set to 200.  I can drop that to 100 and it will install fine - apart from a few ICE Warnings for tables that I don't use, this is a viable option, for now at least but it doesn't resolve the problem if there is NO MSI engine found on the target PC.

This is killing me.  I thought the original problem and solution were going to be a cinch here but each problem leads to the next and I've finally hit a dead end.

There must be an option I'm missing from the SETUP.INI file, does anyone know what?  Or even where the heck I can find some proper documentation on this?  ####, I'll take guesses to be honest right now. :-/

(Edited by pdriley at 3:41 pm on Nov. 26, 2001)


pdriley

pdriley
  • Members
  • 91 posts

Posted 26 November 2001 - 18:44

PROBLEM SOLVED

... or at least, it would seem so.

For anyone who might come looking for a similar solution, here's what I did...

I found another SETUP.INI file in ...\Developer\Support which also didn't work at all.  It simply says "Error reading setup options file" or something like that.

BUT, if you combine the two and get

---SETUP.INI---
[Info]
Name=PC-Duo Client
Version=6.11
DiskSpace=2887;DiskSpace requirement in KB

[Startup]
SuppressWin2k=Y
CmdLine=
Product=PC-Duo Client
PackageName=PC-Duo Client.MSI
MsiVersion=2.0.2600.0
EnableLangDlg=N
SuppressWrongOS=Y
ScriptDriven=0
ScriptVer=1.0.0.1

[Languages]
count=1
default=409
key0=409

[SupportOS]
Win95=1
Win98=1
WinME=1
WinNT4=1
Win2K=1

[Win95]
MajorVer=4
MinorVer=0
MinorVerMax=1
BuildNo=950
PlatformId=1

[Win98]
MajorVer=4
MinorVer=10
MinorVerMax=11
BuildNo=1998
PlatformId=1

[WinME]
MajorVer=4
MinorVer=90
MinorVerMax=91
BuildNo=3000
PlatformId=1

[WinNT4]
MajorVer=4
MinorVer=0
MinorVerMax=1
BuildNo=1381
PlatformId=2
ServicePack=1536

[Win2K]
MajorVer=5
MinorVer=0
MinorVerMax=1
BuildNo=2195
PlatformId=2
---SETUP.INI---

This works fine.  Of course, you may notice the lack of WinXP support, but I'm hoping that will be the obvious.  I'll post in here when I've figured that bit out (or if I find any extra problems).

Until then...


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 November 2001 - 11:40

But the result is not a setup contained in one setup.exe, bt a setup.exe, a setup.ini, and your .msi file, right?
You can easily get a similar result by using the CD-ROM option instead of Network.

pdriley

pdriley
  • Members
  • 91 posts

Posted 27 November 2001 - 13:52

Very similar, yes.  The seperate CAB file is a bit irritating, though it wouldn't have been a stopper.

I'm kind of frustrated by all these options that don't make sense.  I don't want to create a CD, I want to create a network image, so why would I even look there?

Ho hum.  Another couple of days wasted thanks to InstallShield's Documentation people... :(

I notice that the setup.ini doesn't have WinXP support again though.  It does seem that it's comfortable with the obvious settings (5.1.2600) though it's hard to tell because it already has WI 2.0.


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 November 2001 - 23:14

The supported platform listed in setup.ini are those where setup.exe is able to install/update the msi engine. XP already has the latest engine, so in that sense it is not supported (updating the msi engine on XP is not supported by setup.exe)