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

Worried about if I can upgrade...


8 replies to this topic

kris

kris
  • Members
  • 77 posts

Posted 26 November 2001 - 16:16

I have written an installer package using ISWI 2.03.  I was rushed to a deadline and never looked at how to prepare for upgrading.  Now, a couple of months later, I would like to have my installer package have the ability to upgrade to our new version of the product. This is not working, obviously, because when you double-click the new .msi it runs the old version of the .msi (the one that is already installed) which only allows you to "remove" the product.  This is not good behavior for what I would like...Therefore, I have read through this site, and have found out a couple of things:

(According to "Minor and Major Upgrades Using IPWI")

--if I want to "upgrade by re-installing", I will not be able to, since I am using the Network-Image/Compress-all-files combination
--if I want to do a "Major upgrade", then if I try to write info into the Upgrade table, my Upgrade Code should "be the same for both versions"......this worries me, because my original version has no Upgrade Code..I never put any info into this Upgrade table for the last version of my installer...I am worried I have no option to upgrade now?

Help me please?   ....I just want my installer package to upgrade a bunch of files if the user had already installed the product and install the product if they had NOT installed it yet.

Thanks in advance!!!



Irina

Irina
  • Members
  • 227 posts

Posted 26 November 2001 - 17:13

Hi kris,
1. Read articles on this forum under Windows Installer\Tools & Tips\Updates and Patches\Update Rules and \Upgrading without Patching.
2. You can use the command line options REINSTALL and REINSTALLMODE, AND ADDLOCAL.  Read the help in IDE. You can installed newer file and new file by using this like that:
CmdLine=REINSTALLMODE=vomus,REINSTALL=Feat1,Feat2,ADDLOCAL=NewFeat1,NewFeat2.
Change setup.ini file or run an installation from the command line.
3. Don't forget increase version number of you package and change Package Code.

Good luck!


kris

kris
  • Members
  • 77 posts

Posted 26 November 2001 - 17:32

Thanks, Irina....I did read these articles, and the ISWI help, which is what made me concerned. The problem is, I can't use command line options to run the install, b/c my user will be double-clicking the .msi on the cd that we ship, it's not kicked off through the command line.  Also, I can't change the setup.ini file because I am using the Network-Image/Compress-all-files combination.......(there is no setp.ini file create for this type of package)

I can change the package code and the product code, but how will that alone force my installer package to know that I should be performing an "upgrade reinstall"??  I am very confused and the documentation seems to be not helping me...obviously I am missing something....can you or anyone help me see this clearer?  



kris

kris
  • Members
  • 77 posts

Posted 26 November 2001 - 20:49

I tried changing the product code (by clicking on generate guid) and I also changed the product version....now, when I try to run my installation, I get a 1638 error--"Another version of this product is already installed...installation of this version cannot continue....."  I guess this gets me closer to what I want, but why do I get this error?  Any hints?

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 November 2001 - 11:56

You will need to make the command line parameters work. You could do this by either modifying the template setup.ini, or you create a CD-ROM type media, update the setup.ini, and finally packages everything into a self extracting exe with PackageForTheWeb.

Major upgrade should work. The Upgrade code for the existing version would be in the property table (Property Manager in the IDE), not the upgrade table. And I think that InstallShield automatically creates an upgrade code property for you, so the old version hould have one.

The third option would be a patch.


kris

kris
  • Members
  • 77 posts

Posted 27 November 2001 - 13:55

Thanks, Stefan.  So, once I create a CD-ROM type media (with files left uncompressed) and I edit the setup.ini, I will have to have the release team build it using PackageForTheWeb.  Once I do this, I have a setup.exe that I can run, which in turn runs the .msi package (I know that all this will be taken care of in the PforWeb, but I am saying it for sake of clarification) and then the following:

--on fresh install, it simply runs the install
--on an existing install it runs the install, in a "resume"  manner.....

so now, since it is running as "resume", I should edit the project to check for the Condition "Installed"...  Then display the Maintenence dialog to have the user determine if they want to upgrade or if they want to remove the product..one they choose, I can set a property called "Remove" or "Upgrade", and then for each case I can do the appropriate Custom Actions.  So, my question is the following...how can I, when the user first runs the .exe, know if the product needs to be upgraded, or if the only option should be for removal?  Not really sure how to go about this......


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 27 November 2001 - 17:07

In a first time install, the property Installed is false. If the product (or a previous version of it - with the same product code) is already installed, property Installed is true.
But the problem is: either you run the old msi file or the new one. You cannot reinstall the old version with the new msi file - this would update the product.

kris

kris
  • Members
  • 77 posts

Posted 03 December 2001 - 17:31

Stefan,

Is there any way I can check the product version of the already installed version of the product?  See, with my new .msi, if the user already has the product installed, I want to check to see if they are trying to upgrade or just trying to reinstall.....I have the Maintenance dialog displaying "Upgrade" or "Remove". I would ideally like to have it say this when the user is upgrading and have it say "Reinstall" or "Remove" if they are running this kit and have already installed this version.   Can I do this?  Otherwise I think I would have to change the dialog to read "Upgrade/Reinstall" or "Remove".....

Also, does anyone have the same problem where the installation kit, on upgrading, takes FOREVER to kick off?  Once I run the upgrade and go through the dialogs it sits for a good minute/minute and a half.....I have the same ammount of actions running for install as I do for upgrade, but upgrade takes SO much longer....couldit be because of all the conditions I have set on each action?  


Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 07 December 2001 - 08:18

Getting the version number should be possible, but won't help you.

At the time your dialogs display it's too late to make the decision update or reinstall.

If the new msi file was launched, it will be a update. You can't reinstall the old version with the new msi.

If the old msi was launched, you can't update obviously.

So you would have to make that decision in a setup.exe, before the msi file gets launched.