/build/static/layout/Breadcrumb_cap_w.png

Sequencing customaction: Un/Register an executable

I have vendor supplied MSI which once installed does not register one of it's exe's. If I run "%progfiles%appfolder\applet.exe /regserver" it registers fine. I've noticed the original MSI has custom actions to do this, but these actions are not called (it would seem).

My problem is where to put the register and unregister CAs in the installexecutesequence table? So far I've put unregister at 1525 with a condition of REMOVE="ALL" (after the installinitialize and installvalidate actions) and put register at 6405 condition NOT Installed (after pubfeatures & pubproduct and before schedreboot & installfinalize). The result of this sequnce is that I get a 1721 error.

To get around this I've tried setting the unregister sequence to 0 to eliminate that as the problem and it still produces the same error. I'm not sure why as the file should be installed at that point. Am I calling this CA too late? Will the source no longer be valid?

I've had a look at the MSDN suggested sequence and a few other pages but am still none the wiser.

Would appreciate suggestions.

I'm using Orca btw (to get a better understanding of the MSI structure in general).

0 Comments   [ + ] Show comments

Answers (4)

Posted by: venki_msi 18 years ago
Senior Yellow Belt
0
In the excute deferred tab after install finalize trying registring the exe using custom action or add the related registry entries in between the condition IF NOT INSATLLED.
And for unregistering if your using custom action regsvr32 /u %path%file.exe try inbetween insatll intizalize and validate or in the install finalize include the registry that
You want to remove in the custom action inbetween the condition IF REMOVE = ALL
Posted by: meastaugh1 18 years ago
Senior Purple Belt
0
Right ok, I managed to work out from an MSDN article that the register CA had to be after installfinalize, as you suggest venki_msi and this works fine. However, I can't seem to get the uninstall ca to work. I've tried putting it where you suggested. If I use /unregserver it doesn't unregisters and gives no error. If I use %system32%regsvr32.exe /u "%app%app.exe" it says that file cannot be found. Can you suggest where I'm going wrong?

thanks
Posted by: venki_msi 18 years ago
Senior Yellow Belt
0
Try putting the custom action after the line "find related product" in both executeimmediate and in user interface within the condition IF REMOVE = "ALL" AND
also make sure that your custom action is running proper if run that alone.
r you using wise cutom action or vb script?
Posted by: meastaugh1 18 years ago
Senior Purple Belt
0
Right ok, it was the customaction type. The vendor had said it to 274, changed to 18 and all was well.

Thanks
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ