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).
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)
Please log in to answer
Posted by:
venki_msi
19 years ago
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
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
19 years ago
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
thanks
Posted by:
venki_msi
19 years ago
Posted by:
meastaugh1
19 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.