GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Updater always reports software up to date

I'm having trouble understanding the updater mechanism. We have placed calls within our application to run the updater.exe file. When we do, the updater always reports that our software is "up to date" no matter what I try. I am confused about several things:

1) The documentation refers to the syntax of the ini file that is located on the server. However, there is another ini file that appears to be needed in the client app folder (along with updater.exe) that does not seem to be documented. I had used the updater.ini file that I found in Caphyon's own bin folder and tried to customized it, so that updater.exe could find the .txt file on the server. The syntax for both files appears to be similar but not the same. I'm really not clear on which file does what, especially with things like ID= which does not appear to be documented, but seems to be needed locally on the client.

2) What gets compiled into the updater.exe when I build it as part of my project? When I build this file, how can I get AI to automatically put it in the same folder as our executables (rather than in the root of the installer folder)?

3) No matter how simple I make the server .txt file, I can't seem to force it to install the updater file. Does the installer need to be in .msi format, or can it be an executable. Does it have to be a patch, or can it be an ordinary installer?

4) We keep our updater files in a password protected folder on our server. When I run updater.exe, id does ask for the username and password, but does this interrupt its processes causing it to always report that the software is up to date?

5) For version control, I'd like to use 2.6.xx.0 as the version control numbers for updates. Is that possible?
Daniel
Posts: 8238
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Updater always reports software up to date

Hello,

I'm not sure why you are encountering this behavior. Can you please make sure that you are using a proper detection criteria in your updates configuration project. Please take a look on our "Using the Updater" article in order to achieve what you want.
1) The documentation refers to the syntax of the ini file that is located on the server. However, there is another ini file that appears to be needed in the client app folder (along with updater.exe) that does not seem to be documented. I had used the updater.ini file that I found in Caphyon's own bin folder and tried to customized it, so that updater.exe could find the .txt file on the server. The syntax for both files appears to be similar but not the same. I'm really not clear on which file does what, especially with things like ID= which does not appear to be documented, but seems to be needed locally on the client.
Please keep in mind that the updater.ini file is an updater configuration file containing information about current package version and about updater command line. Also, it is not recommended to modify the updater.ini file. In order to correctly be detected your updates you should use a proper detection criteria in your updates configuration project.
2) What gets compiled into the updater.exe when I build it as part of my project? When I build this file, how can I get AI to automatically put it in the same folder as our executables (rather than in the root of the installer folder)?
Please keep in mind that the updater.exe is an executable tool who checks for updates and it is the same exe file for all Advanced Installer projects. Also, by default it is added in "Application Folder" folder, but it can be moved (alongside its updater.ini file) in another installation folder if you want.
3) No matter how simple I make the server .txt file, I can't seem to force it to install the updater file. Does the installer need to be in .msi format, or can it be an executable. Does it have to be a patch, or can it be an ordinary installer?
Please keep in mind that for the Updater it doesn't matter if the update is a MSI, EXE or MSP file. Please take a look on our "Using the Updater" article in order to achieve what you want.
4) We keep our updater files in a password protected folder on our server. When I run updater.exe, id does ask for the username and password, but does this interrupt its processes causing it to always report that the software is up to date?
No, there should be no problem using this scenario.
5) For version control, I'd like to use 2.6.xx.0 as the version control numbers for updates. Is that possible?
Yes, you can use the related format version.

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

I'm still not clear on the differences between the .ini file that resides on the client computer and the .ini file that resides on the server. How are they different?
Daniel
Posts: 8238
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Updater always reports software up to date

Hello,

Overall, the difference is that the "updater.ini" file contains information about current package version, and the updates configuration file on the server contains information about upgraded package versions and upgrade detection criteria.

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

I continue to be confused by the two .ini files. I understand that the updater configuration file can be generated by creating an updater project type. The result is a configuration file that is to be placed on the server.

However, I can find no reference on how you create an update.ini file that is to be placed on the client. When I use the Updater page and check the Check for updates using Advanced Installer, I fill in the location for the configuration file URL. Then the AI project builds (copies?) the updater.exe to the root of the folder. However, when I run the updater on the client, it will not locate the server configuration file unless I manually create a local updater.ini file that has to contain certain things, such as an ID= and the http path to the configuration file on the server.

What am I missing here? Where is the documenation for the updater.ini file that has to reside on the client computer? Where does it come from? Why doesn't including the http path in the Check for updates using Advanced Updater page tell the updater.exe where to look for updates? Where is the ID= field documented? Is the updater.ini file supposed to be built by the Check for updates using Advanced Installer option?
Daniel
Posts: 8238
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Updater always reports software up to date

Hello,
However, I can find no reference on how you create an update.ini file that is to be placed on the client.
Please keep in mind that the related .ini file will be added, alongside the updater.exe file, in your project (in Application Folder from "Files and Folders" page) when you enable the "Check for updates using Advanced Updater" option from "Updater" page. Therefore, you should not manually create or edit the above updater.ini file.

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

Well, I guess that this is part of my problem. I get an "installer.exe" copied to the root of the target (output) folder, but no installer.ini has ever been created on my machine when "Check for updates using Advanced Updater" is enabled. I see you have v9.8 of AI released. I will upgrade and try again.

Edit: No different with AI v9.8. No updater.ini is ever created.
Last edited by GlenT on Mon Dec 31, 2012 6:19 pm, edited 1 time in total.
Daniel
Posts: 8238
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Updater always reports software up to date

Hello,

Please keep in mind that the updater.ini file will be added in your project, as I mentioned in previous post, in "Application Folder" directory from "Files and Folders" page. So, when installing it will be installed on target machine in your installation folder. Also, it will not be generated on your build output location.

Can you enable the "Check for updates using Advanced Updater" option from "Updater" page, build and run your project and then check if the related updater.ini was installed in your package installation folder?

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

OK, thanks, Daniel. That explains a lot of my problems. I've been trying to bench-test this without actually performing installs and I've been tearing my hair out trying to understand how that file was supposed to be generated. It is not at all clear in your documentation.

There is one rather vague reference on the Auto Updater page that says the "INI configuration file will be inserted into the install package", which isn't really accurate. A better description would be, "The INI file is automatically created and inserted into the application package when the installer is run on the end-user's computer."

I will test further and see how this goes.
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

I am getting further along, although continuing to have problems. As mentioned previously, checking against an executable file version always results in a program up to date message. However, I have had some success with setting a version in the registry and checking against that. I wonder if updater.exe has difficulty reading the version info from .exe files generated by Embarcadero C++ Builder.
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

Another thing I noticed is that your server configuration file examples include Version = >= xx.yy This doesn't appear to work or to be supported by the GUI. Is a range of version numbers supported? I would like to set a range, such as > 2.7.01 and < 2.7.xx where xx is the version of the update. All of our updates for a major version include all previous updates. But since we don't change the folder or registry structure from one major version to the next, I have to limit the version range to prevent inadvertent upgrading attempts from one major version to the next.
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

Daniel, any additional comments on the apparent failure of the updater to be able to obtain version info from executables generated by Embarcadero C++ Builder, or Version = >= syntax?
Daniel
Posts: 8238
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Updater always reports software up to date

Hello,
I am getting further along, although continuing to have problems. As mentioned previously, checking against an executable file version always results in a program up to date message.
I've tested your scenario, but I cannot reproduce the behavior. Here's attached a sample, created using version 9.8 of Advanced Installer, which implements a similar scenario.
sample.zip
(1.61 MiB) Downloaded 326 times
Another thing I noticed is that your server configuration file examples include Version = >= xx.yy This doesn't appear to work or to be supported by the GUI. Is a range of version numbers supported?
I'm afraid I don't fully understand what you mean. Can you give us more details about this (maybe exemplify)? If you are referring to the product version format you can take a look on our "Product Version" article.

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
GlenT
Posts: 118
Joined: Mon Jul 16, 2012 8:44 pm

Re: Updater always reports software up to date

Please see your configuration file example page and look at the examples given that show Version = >= 4.5:

http://www.advancedinstaller.com/user-g ... mples.html

When I try to do this, the updater always returns an 'up to date' message.

As I mentioned, I suspect that .exe files generated by our code development system (Embarcadero C++ Builder) are not being read properly by the updater and are not getting the correct version number info, resulting in always returning an 'up to date' status. The example you sent with Notepad.exe would obviously work, assuming that Notepad.exe was built using MS tools (Visual C++). I would not be surprised if there was a problem reading the version of a C++ Builder .exe file, because we already have an open case for AI failing to extract COM info from a C++ Builder .exe file at installer build time (which we hope will be fixed soon...).

I'm also a bit confused about the "Expected Value" field on the Update Properties Tab. The Help states that this is "the version used for comparison". When I create a new updater configuration file project, the AI GUI automatically uses the version number from the patch or upgrade installer. How or why would this be different from the Product Version field, which also picks up the version of the patch or upgrade installer?
Daniel
Posts: 8238
Joined: Mon Apr 02, 2012 1:11 pm
Contact: Website

Re: Updater always reports software up to date

Hello,
Another thing I noticed is that your server configuration file examples include Version = >= xx.yy This doesn't appear to work or to be supported by the GUI. Is a range of version numbers supported? I would like to set a range, such as > 2.7.01 and < 2.7.xx where xx is the version of the update.
I'm afraid we don't have support for this. Also, the >= operator from the version search is deprecated and cannot be set within Advanced Installer UI due to "Expected Value" field format validation.
As I mentioned, I suspect that .exe files generated by our code development system (Embarcadero C++ Builder) are not being read properly by the updater and are not getting the correct version number info, resulting in always returning an 'up to date' status.
In order to check this you can select, in your "Updates Configuration Project -> Updates -> Properties" tab, the related .exe file using the [...] button from right side of "Expected Value" field. After you'll pick the related .exe file the "Expected Value" field should be set accordingly with the EXE file version.
I'm also a bit confused about the "Expected Value" field on the Update Properties Tab. The Help states that this is "the version used for comparison". When I create a new updater configuration file project, the AI GUI automatically uses the version number from the patch or upgrade installer. How or why would this be different from the Product Version field, which also picks up the version of the patch or upgrade installer?
Please keep in mind that the "Expected Value" field should be set automatically after you'll pick a file or registry value using the [...] right button.

All the best,
Daniel
Daniel Radu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Building Installers”