What is Software Update?
Software update is an application that lets you upgrade other applications via the internet. It can be installed with your application and gives your users a common way to update their applications.
At the moment Software Update works best with Inno Setup however support for other installers will come later.
How does it work?
Software update downloads from the internet a file that contains a list of applications and their version numbers. This file is usually located at nexusconcepts.com or it can be on your web site or local server. Software update then compares the list of applications to those you have installed and gives you the option to download any applications that need updating
How does it find applications?
Applications are found by searching the registry for common install points of your applications main executable. These include:
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\YourExe.exe
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName_is1\Install Path
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\YourAppName_is1\Inno Setup: App Path
How does it find the version number?
Software Update uses the version number found in the metadata of your main executable (or dll). You can normally find this information in Windows Explorer by right clicking the file and choosing properties. If the file has version information a version tab will appear.
To set your version number you would normally update it in your IDE for your programming language.
How can I include software update in my application?
If you are using Inno Setup you can add a line under the Files group:
Source: "c:\softwareupdate\updatesoftware.cpl"; DestDir: "{sys}"; Flags: comparetimestamp restartreplace
This assumes that you have updatesoftware.cpl in the folder c:\softwareupdate. Please ensure you have the latest copy of this file.
For other installers all you have to do is copy this file into the windows systems and it will appear in the control panel.