This was very helpful, and seems to work just fine (so far I have tested with Studio uninstalled so I could see that it worked). I have a few concerns though.
UninstallRun. Let's say I am installing Runtime.6.0.2.3 with my app, and someone has already done so with their app. If my app gets uninstalled, what happens - does the Runtime that was already installed get removed? Or is this method somehow smart enough to know that it did not get installed with my app and leave it?
Also, what if that other app that installed the runtime before me gets uninstalled - will that remove the runtime leaving my app without it?
What if the user is running R2010 with some other app that has installed the Runtime.5 - does that app now load the Runtime.6 that I installed, with no problem? Or what?
These are questions that have made me shy away from using OpenDCL until I had a real need. Now that I'm into it, I love it. But I'd feel better about going live with it until I know the answers.