Search code examples
windows-installerinstallationclickoncegacupdating

Updating a msi application like clickOnce


I have developed a desktop application, which needs to install some DLL in client's GAC, so I distributed it to my clients as a MSI installer.

However, every time i publish a new version, the client has to download it manually and reinstall it. I was wondering if there is not a better way to distribute it.

Something like ClickOnce. On a ClickOnce distribution, when the users opens the app, it automatically detects that I have published a new version, downloading and installing it before opening the app.

However in a ClickOnce distribution I cannot install dll in client's GAC, so i cannot use it. Is there any way to distribute my app with these 2 requisites?

  1. Install DLL in client GAC
  2. Automatically updated when i published a new version

Solution

  • Despite MSI being superior to ClickOnce in almost every way, auto updating pattern is the killer feature that MSI was never given a native solution for. You have to implement this infrastructure yourself or leverage one from a vendor such as InstallShield or others. You need a number of pieces such as a webservice to serve up the updates, a windows service to download and elevate the packages and a client side to quit the app, perform the install and restart the app.