PDA

View Full Version : Problems with upgrading



Jonny_B
11-08-2005, 09:39 AM
Hey everyone,

I just ran into this problem. Every night the nightly build is run (using visual build) and increments the build number (which in turn increments the product version - minor upgrade code. i.e. a.b.c.d , it will upgrade c). It also changes the product code. I need the install to do a major upgrade whenever this scenario is encountered and a new install msi is found and is installed. So far I have a few ideas as to how to do this, but I wanted to know if anyone could lead me in the direction as to which one would be the easiest/best solution. Here are my solutions.

1. Upon detecting a minor upgrade, force it to do a major upgrade.
2. Upon detecting a new product code, check for the same upgrade code and force uninstall and then treat as new install - if the same product and upgrade code, run maintenance.

Are either of these options feasible, and if so, which one is better? Or if there are any other ways to do this, what does it involve? Thanks a lot for your help!

Jonny_B
11-08-2005, 10:15 AM
Do you think that this will solve my problem?

Jonny_B
11-08-2005, 12:43 PM
I tried using the automatic upgrade item, and it worked - partially. I am still having issues. An example would be if I am working on version 1.1, then I build up to version 1.2 and do not run the install. I then upgrade to version 1.3 and install the MSI on my machine. At this point I will get version 1.1 and version 1.3 installed on my PC. However, if I install all 3 versions it appears to work properly. I always update the file to be checked for update before compiling, so this should not be causing the problem. Does anyone know any way around this? The only reason being that this is how the actual build will work.

( the version numbers are just examples they could be different )

1. Ship version 1.0 to customers
2. run build every night and increment build number.
3. Ship version 1.9 to customers

So the customers will be installing versions 1.0 and then 1.9. I just want them to have 1 application installed under the control panel, and if I do the nightly build every night then this will cause them to get 2 applications installed and registered. Is there any way around this? Any help is greatly appreciated! Thanks in advance!

Jonny_B
11-08-2005, 01:28 PM
I think the solution to my problem is that I need to do this ...

Base Version 1.0
Install version 1.0
Upgrade to 1.1, compare with version 1.0
Upgrade to 1.2, compare with version 1.0
Upgrade to 1.3, compare with version 1.0
New Base Version 1.4 compare with version 1.0
Install version 1.4 ...
and so on ... the new base versions are the shipping to client versions and the upgrades are just the nightly builds ... I'm testing this right now

Jonny_B
11-08-2005, 02:13 PM
Hmmm...

It seems like a few new issues came up while doing this ... for instance:

Customer A has version 1.0
Customer B has version 1.1
Customer C has version 1.2

They all want an easy way to get to version 1.3. So, how can this be done? Would patching be the best option? Is the upgrade path not an option that I should be pursuing? I am going to start doing some reading on the patching process, and I would appreciate any input on this matter. Thanks a lot.

Jonny_B
11-08-2005, 04:06 PM
Finally reached a solution:

Disabled minor upgrades, and forced uninstall/reinstall of major upgrades. Then added a major upgrade handler which takes care of the installations by forcing the uninstall/reinstall. It was that simple, but was making it too complicated.

jasoncd
11-08-2005, 05:31 PM
Finally reached a solution:

Disabled minor upgrades, and forced uninstall/reinstall of major upgrades. Then added a major upgrade handler which takes care of the installations by forcing the uninstall/reinstall. It was that simple, but was making it too complicated.

Just saw your posts. Since you're changing the product code anyway, I think you took the best solution. Though I don't have much experience with it. If you didn't change the product code, like me, here's what we do. I created a batch file to automatically uninstall other versions of our software that have different product codes (developer, public, workshop builds, etc). This works fine for us developers, but would be too much trouble for end-users. Not sure if there's a better way.