Posted 02 November 2005 - 10:37
I have already created an MSI as a Basic MSI Project. The msi file is already installed on the machine with a specific behavior for maintenance mode.
I would like to create a PATCH, which can contains some new versions of binaries AND I would like to change the behavior for maintenance mode case.
Now, I would like to do that without uninstalling the msi file, only to apply the patch.
Could be done through a patch or the only way is to create a transform (I don’t wanna this) ot minor upgrade (also, I don’t wanna this)?!
Posted 04 November 2005 - 14:55
Yes, you're right, is kind of tranform actually, but, I have a problem with the patch. How can execute a custom action when the patch is uninstalling? A new Custom Action, defined in patch.
I have tried many things and it seems that doesn't want to execute anything when I choose Add/Remove the patch from the Control Panel.
Why I'm asking, becasue I need the value for InstallLoacation key from the registry after the patch was uninstalled.
When I'll uninstall the base msi, I need that value for kill a process. Right now, I cannot modify that project, only through the patch I can modify somthing. And after the Path is uninstall, the value is overwritten because no custom action is executed (here should have been execute the "SetARPINSTALLLOCATION", but at uninstall, it doesn't).
That's why I need another way to set back the value in the registry for the InstallLocation.
Please help me somehow, with an idea or something.
Posted 08 November 2005 - 11:54
Posted 08 November 2005 - 15:24
What I want to do is to write back, during patch uninstall, the value for InstallLocation (right now is deleted during patch uninstall).
Posted 08 November 2005 - 16:21
Inside Windows Installer 4.5
Posted 09 November 2005 - 08:38
Do you mean that I have to create two pathes. The first one based on the orginal msi file and it must contain the CA that should be executed at uninstall only. And also, it must not be able to be uninstall. The second one must be based also on original msi or based on the first patch? If I create the second patch based on the original msi file, when I'm trying to install it, the CA still not got executed - maybe I have to create in some way both patches, with a kind of relantions between them.
What I have done, till now, I have created the first patch based on original msi file - as Add new path Configuration from Patch Design. In this patch I put the CA to be executed when REMOVE~="ALL". I have created the second patch, in the same way, as "Add New Patch Configuration: (I don't know if this is ok), based also on original msi file. In this patch I have added some new files to be installed and some new binary version. Also I have added the same CA with the same condition to be executed.
Please, correct me if I have done something wrong.
The CA is still not executed. As I told you, may be it matter the way how is created the second patch.
I'm looking for the asnwer, thank you very much.
Posted 09 November 2005 - 13:40
2. Your condition is wrong. Your condition REMOVE~="ALL" is only true, while product is uninstalled. This condition is false, if you remove the patch. In patch uninstall scenario, MSI writes the patchcodes of all patches to unistall in the property MsiPatchRemovalList. You must use this property as condition.
Inside Windows Installer 4.5
Posted 09 November 2005 - 13:42
Thank you for the information ... I'll try it right now, I'll let you know what I'll find.
Thank you again.