Hi,
We've been having great success with wyUpdate. Thanks for a great product. Now I need to make it stop working. Here's what I have:- We distributed a .NET application by .MSI file months ago.- We include wyUpdate.exe and client.wyc in the MSI install.- Each update includes just a half-dozen files, including the application's .EXE, AutomaticUpdater.dll, and client.wyc (and a few other data/content files)- The application uses the AutomaticUpdater control to automatically handle updates most of the time. However, we have had a few clients use the installed wyUpdate.exe to overcome a few update glitches.
OK, we have a web server that keeps track of license keys. The application checks into the server with the user's license key, and the site returns details about the user's license, including an expiration date. If the license is expired, the application automatically shuts down.
We offer free upgrades to our customers for a limited time with this application. To facilitate this, I've just incorporated an "Update_Expiration" date in our licensing database. So, now when the application checks in, it gets the Update_Expiration date. After this date, the application should continue to run, but the user should not be able to receive updates.
So, no problem. I just disable the AutomaticUpdater control. So the application doesn't self-update. However, anyone could easily run wyUpdate.exe to get the latest version despite an expired license to do so.
Is there a good way to disallow this?
I could just programmatically delete wyUpdate.exe and client.wyc, but Windows Installer would keep putting it back each time the application ran.
I also considered just overwriting client.wyc with an empty text file. This way, Windows Installer would not attempt to replace the file with the installed version, but wyUpdate.exe would not be able to update. However, the problem with this approach is that we can remotely activate/extend licenses remotely. When I customer pays for another year of updates, we simply change their Update_Expiration date in our database. Then, we want the application to resume being able to update automatically.
If I invalidate the client.wyc file, then the application will not be able to resume normal updating without replacing that file with a valid file.
I can think of plenty of ugly workarounds, but I was hoping to find out that there was a simple and straightforward way to do this.
-Brent