I should have done the same a while ago. What I did was do as you described and code the deletion for SQLExpress.
But I did this in the boot module of the application, I checked the installed version, started uninstalling it, then checked again (in case of cancellation of the user), and then restarted the application.
Clickonce sees missing prefixes that are missing and disabled for installation.
He wound for a very long time, but worked.
SQL Everywhere ( SQL Compact ), DLL messing. ( -). f