PDA

View Full Version : Major upgrade problem



NewsArchive
09-21-2000, 12:00 AM
Hi Robert,

The install works stand alone

Also I checked and made sure that the following were the settings used to

build the upgrade

Missing source files: Do not ignore

Version check: majore minor upgrade

Version relationship: New version >= previous version

Match product code: No

Match upgrade code: Yes

Match language: No

What does 2254 mean anyway?

Thanks,

Jeremy

"Robert M. Dickau"

<i_wish_i_had_time_to_answer_individual_questions_through_email_but_i_don't@

installshield.com> wrote in message news:<39c93bcb$1@12.41.20.38>...

> Does the major upgrade work without using a patch (just running the newer

> MSI package)? When you were creating the patch, did you select "allow

> product code to differ"?

>

> "Jeremy D. Goldhaber-Fiebert" <goldhaber-fiebert@corex.com> wrote in

message

> news:39c7985d@12.41.20.38...

> > Hi,

> >

> > I have created a major upgrade (different package and product code) (new

> and

> > modified components)

> > I've added an entry to the Upgrade table (as specified in response to

> Aaron

> > Anderson (9/11/2000)).

> > I've built the patch, but when I run it it fails with the following

error

> > message

> >

> > Internal Error 2254. , Directory

> >

> > I'm not sure what's wrong.

> >

> > Thanks for you help,

> > Jeremy Goldhaber-Fiebert

> > Corex Technologies Corporation

>

> --

> Robert M. Dickau

> Senior Technical Trainer

> InstallShield Software Corp.

> www.installshield.com/training

>

>

NewsArchive
09-21-2000, 12:00 AM
You can look up any MSI runtime error code in the MSI help page "Windows
Installer Error Messages"; it describes 2254 as "Database: [2] Transform:
Cannot update row that doesn't exist. Table: [3]".

"Jeremy D. Goldhaber-Fiebert" <goldhaber-fiebert@corex.com> wrote in message
news:39ca1ff1$1@12.41.20.38...
[...]
>
> What does 2254 mean anyway?
>

dubem1
02-21-2002, 09:09 AM
Hi,

Here is my situation. My setup do some job on the "maintenance UI after" event. So, when I uninstall the product, the job in "maintenance UI after" is performed.

Now I have a new version so I made a major upgrade. It works well, the files of the old version are deleted and the files of the new version are copied. But, in fact, the "maintenance UI after" event isn't call so the job in this event isn't done.

What I want is, after the files of the old version are deleted, I want the code in "maintenance UI after" to be performed. Exactly like when the product is remove with "add/remove programs"

Where should I place my code if I want this code to be perfomed after the files of the old version are deleted??

I am using IS DEv 7.02 with a standard project.

Thank you

Joshua
02-21-2002, 10:27 AM
You are correct in that a Major Upgrade removes the older version, without running the OnMaintUIAfter event of that older setup.

If you wish it to work like Add/Remove Programs, please launch the UninstallString located at the following registry location:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_<GUID>

This will launch it the same as when it is removed from Add/Remove Programs.

Regards,

Joshua
InstallShield

dubem1
02-21-2002, 10:41 AM
Thank you,

but where should I launch it?? I want my new setup to act like a major upgrade, I mean, I want my newer setup to do all the job of removing the older product, and then install the new one. So, I don't really understand how can I do it by launching the value you specified. Can you explain please.

Thank you

Martin

LewisQ
02-21-2002, 10:50 AM
For instance, Something like this in OnBegin():

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

RegDBGetKeyValueEx("Software\\\Microsoft\\Windows\\Curr
entVersion\\Uninstall\\InstallShield_{Whatever GUID the old one has}", "UninstallString", nType, sValue, nSize);

SdShowMessage("Getting Rid of the Old! Go Grab Some Coffee...", TRUE);

LaunchAppAndWait(sValue, "", WAIT);

SdShowMessage("Old Has Been Destroyed. Here COmes the New!", TRUE);

and so on...

dubem1
02-21-2002, 10:57 AM
okay,
if I do it like that??? What about the package code and product code?? Sould they be different in my new setup?? Should I have to add a record in the upgrade table?

Thank you

Martin

LewisQ
02-21-2002, 12:25 PM
Martin,

In doing like my sample, you will not be doing a Major Upgrade. However, you will be uninstalling the previous setup and in that case the upgrade table serves no function. Use different GUIDs.