View Full Version : Patch and additional MSI
cwhitehe
12-02-2005, 11:12 AM
I've created a setup program that launches another MSI using a custom action.
Our applications are also available as patches. Is it possible to make a patch also launch the additional MSI?
RobertDickau
12-02-2005, 01:00 PM
Patches should be able to run the same kinds of custom actions; you can use the PATCH property in a condition to specify whether an action should run for a patch.
If your full project launches the custom action on a dialog box control event, you'll want to duplicate that event for the patch dialog sequence (the part of the UI sequence that starts with the PatchWelcome dialog box), but other than that it should work the same way...
thewiz
02-01-2007, 07:53 AM
I have a couple custom actions I want to prevent from running during the patching process. How do I use the PATCH property in the Install Exec Condition of a Custom Action to keep it from running?
RobertDickau
02-01-2007, 08:56 AM
You should just be able to find the custom action in the Custom Actions view, and put PATCH in the appropriate condition field. If a condition consists of only a property name, you're testing whether the property has any value at all.
thewiz
02-01-2007, 09:25 AM
Well, I don't want the custom action to run so I put "Not PATCH" in the condition field. The custom action still executes though. is "Not PATCH" a valid condition?
RobertDickau
02-01-2007, 09:27 AM
Yes, Not PATCH is valid for skipping an action when a patch is being applied; if you create an MSI log file while deploying the patch, is PATCH being set?
thewiz
02-01-2007, 09:52 AM
The patch file is Update.exe. Can I log that with MSIExec?
RobertDickau
02-01-2007, 09:55 AM
Perhaps try something like update.exe /V"/L*v patch.log", or, for testing, don't build the update.exe or grab the unwrapped patch from the build folder...
thewiz
02-01-2007, 10:24 AM
It looks like PATCH is being set and further down in the log I can see the custom action start and end. Is there anything else I need to do after I update the custom action? This is my first patch so I might be forgetting something.
RobertDickau
02-01-2007, 01:24 PM
As a sanity check, you'll need to rebuild the patch after adding the condition, of course...
Otherwise, how strange. What if you create a VBScript action that just runs:
MsgBox Property("PATCH")
around the same place as the other action (possibly also with condition Not PATCH)?
thewiz
02-01-2007, 01:48 PM
I'll give that a try. I also want my patch to replace an old dll file but it looks like the new dll is not being installed by the patch.
RobertDickau
02-01-2007, 01:56 PM
That's another thing that an MSI log file (and also the InstallShield update-validation routines) should be able to help with.
Since a patch is just a way to package an update, and not really a different type of update, sometimes I find it simpler to get the minor upgrade working as a full package, and then move on to creating the patch...
thewiz
02-01-2007, 02:45 PM
I rebuilt the patch from scratch and the "Not PATCH" condition seems to work now. Do you have to recreate the patch everytime you make a change to the installshield project? I though I could just rebuild the install and patch and the patch designer would know about it.
RobertDickau
02-02-2007, 08:09 AM
Yes, rebuilding the patch without having to re-create it should do the trick. You can open a patch in Direct Edit view to see its contents, as one way to verify the supposedly-new contents after a rebuild...
Powered by vBulletin® Version 4.2.0 Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.