Add a new custom action to be used during patching
I think this might be a stupid question, but I just want to confirm my suspicions of why I am having problems.
We have a product that was already released to customers at v1.0.0, after release it was found that the original release was missing an empty directory that will cause a blocking failure in certain situations.
For context, we release full installers for our initial releases. After that, all releases are patch only.
I've been tasked with adding this folder back in our next patch, however there is a catch. The patch must be able to be uninstalled. So, this means I cannot add new rows to the CreateFolder table, since that would disable the ability to uninstall the patch.
I was asked by development to "just add a custom action that makes the folders", however, from my testing, I don't think this is possible.
It appears that the only custom actions that get executed by my patches are those which existed in the original release, any custom actions I add appear to never get executed. This makes sense to me, however, I cannot find anything in documentation that states this explicitly.
My theory is this: You cannot add custom actions to a patch only. To do this, you would need to modify the original installer and add the custom action and then generate your patch from that, however, that would be stupid since it would make more sense to just add the folder the right way.
My question is, is this assumption correct? If so, is there someplace in official documentation that specifically confirms the behavior above?
Of course, it's also possible that I am doing something wrong. I don't think so, but that's always a possibility.
Any insight would be very helpful.
You can create a patch using patch configuration with old and new msi's like version1.0 and version1.0
Version1.0 is old msi and Version1.01 is new msi with new customaction added to run only on patch installation.
Created a project with version1.0 and release1
without any customaction
And installing version1 setup.exe
It will create a file in C:\Program Files (x86)\My Company Name\My Product Name\Version1.txt
Step2 for patch creation:
Now open the same ism again and change version from 1.00.0000 to 1.01.000
and add new files
add a Customaction with condition to run only on patch installation
Add a new release and rename it version1.01 under product configuration
Save and build the installer
Step3: Creating a patch
Now go to Patch Design under Media view,
Add a new patch configuration
Add latest1 as our newly build installer (Version1.01)
And add Prev1 as a our version1.0 installer
Now right click and build the patch.
After installing version1.0 installer
Installer the patch created using patch desing view and verify Customaction executed and folder created under C:\ drive successfully.
Please refer attached sample project and screenshots.
Installscript CA to add a new folder: