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

Upgraded to InstallShield 2014, not can't get UPDATE to run proper


4 replies to this topic

shaight

shaight
  • Full Members
  • 2 posts

Posted 02 September 2016 - 16:54

I have a product with many released versions, and I'm preparing to release the next one.
I upgraded Installshield from IS11.5 to IS2014.  My IS11.5 Basic MSI project converted fine.  

I made these changes to the IS2014.ism

1. added custom actions to get SUPPORTDIR and INSTALLDIR to my deferred functions.

2. renamed OnBegin, OnEnd, OnMoving, OnMoved, and OnUpdate to MyOnXXX

3. For MyOnMoving and MyOnMoved, I set the Install Condition so they would only execute on an Uninstall.
   REMOVE~="ALL"  AND NOT (IS_MINOR_UPGRADE OR IS_MAJOR_UPGRADE)

4. For MyOnUpdate I set the Install Condition to only run on updates.
   (NOT REMOVE~="ALL") AND (IS_MINOR_UPGRADE OR IS_MAJOR_UPGRADE)

5. I changed the ProductVersion, ProductCode, and PackageCode, but kept the UpgradeCode unchanged.

6. Created an Upgrade scenario for a Major upgrade with
  * Completely uninstall old setup before installing new setup
  * Products sharing my upgrade code
  * Any version
  * Detect Only = No
  * Detect Property = ISACTIONPROP1 (I'm not referancing this anywhere)

On a full install, I lay down the windows project files, create and start a service, and create a DB2 DB.

On an uninstall, I uninstall the windows project files, stop/uninstall the service, and drop the DB2 DB.

On an Update, I want to uninstall/install the the project files, stop/uninstall/install/start the service,
and UPDATE the DB2 DB.  

The new IS2014 setup.exe will install and uninstall properly, but when I lay down a prior version, it does an full uninstall, then a full Install instead of an Upgrade. It goes thru the DROP DB code in MyOnMoved, which I definitely don't want it to do.

IS2014.msi doesn't seem to know that I want a MAJOR upgrade, and it should leave the DB2 DB alone.

The command line from the log looks like this -
Command Line: SETUPEXEDIR=<properPath>\PROJECT_ASSISTANT\SINGLE_EXE_IMAGE\DiskImages\Disk1 SETUPEXENAME=setup.exe CURRENTDIRECTORY=<properPath>\PROJECT_ASSISTANT\SINGLE_EXE_IMAGE\DiskImages\Disk1 CLIENTUILEVEL=0 CLIENTPROCESSID=3388

Can anyone tell me where I'm going wrong, and what I'm missing? I have very little experience with installshield so all help will be greatly appreciated.
 



deramor

deramor
  • Full Members
  • 187 posts

Posted 02 September 2016 - 23:14

Have you tried to remove the tildes from your conditions?  I don't see them referenced in the help topic for conditional statement syntax.

 

Is the problem that your Custom actions are not executing at the correct time or is there something else going on?

 

Also, those function names are usually in some other project type such as InstallScript MSI.  Are you sure you converted Basic MSI to Basic MSI?



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 03 September 2016 - 16:09

The ~ looks okay. It makes the copmparison case insensitive.

Additional questions:

I guess the code to drop the database is in your MyOnMoving or MyOnMoved function? (BTW like deramor I suspect that there may be a mixup with the project types.)

Is the ISSetAllUsers custom action in your sequences (typically the first action in UI and Execute tables)? InstallShield should add it automatically, but this can be turned off.



shaight

shaight
  • Full Members
  • 2 posts

Posted 04 September 2016 - 15:03

Thank you Stefan and deramor.

Yes, the Drop DB code is in the MyOnMoved function.

Although the function names are confusing, it is a Basic MSI project. I suspect the functions got those names because the guy that wrote the initial install didn't know InstallShield either :D . I work for a very small shop.

ISSetAllUsers custom action is is both sequences. See IS_GUI.png.

I have uploaded the log from my last run on Friday for your viewing enjoyment.

 

 

Attached Images

  • IS_GUI.png

Attached Files



Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 09 September 2016 - 16:31

From the log it looks like the only InstallScript action that runs is MyOnBegin.

Please generate the log file using the registry key (see my signature) and setting "Logging"="voicewarmup" to get a verbose log.