Question

Is it possible to get my Internet Explorer plugin to update itself without requiring a manual uninstall/reinstall using the .msi? I have been thinking of trying to do this programmatically but I am unsure as to what would need to be done(registering .dll's etc).

Thanks, Nathan

Was it helpful?

Solution

Just download the new MSI in the background. When it's done, prompt the user and if they agree, run the new MSI.

RE: avoiding user input: You can do it without their permission... but since installing a new add-on requires restarting the browser, that may not be the best thing to randomly do. You might time it to happen when you know the stores will be closed, but what if they open at midnight for Black Friday? You have to think it through.

An alternative is to implement a stub DLL that exposes all the interfaces that your extension implements and register that stub as the one that IE loads. Then your stub can call loadlibrary on the real dll and thunk all the calls through. When you want to install a new version, you download the new implementation dll and have the stub unload the old one and then load the new one. If you do this properly it can be seemless to the user... the difficulty comes when the new dll needs new registry entries or you need to update the stub... etc. All of these problems can be solved, but the effort required explodes.

My advice is keep it simple until you absolutely have to go to these lengths.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top