'installedupdates.dat' is not saved in the right place: Bug?
Posted: Wed Nov 20, 2013 6:14 am
After applying an update (say MyApp1.0 is updated to MyApp1.1), an 'installedupdates.dat' is created with the correct contents, but it is in C:\ProgramData\{GUID-for-MyApp1.0}. This means that when I select the Update shortcut for MyApp1.1 I am presented with the contents of the updates.ini on the web site - showing that MyApp1.1 is available. This must be wrong.
If I copy the 'installedupdates.dat' to C:\ProgramData\{GUID-for-MyApp1.1}, then I am told correctly that there are no updates available.
I searched this forum for 'installedupdates.dat' and I found a number of entries on this topic. The closest appears to be: http://www.installaware.com/forum/viewtopic.php?f=6&t=1906. However, this was reported in 2007, and looks like a bug being reported to me. I am puzzled as to why it hasn't been fixed. Unless, there is something I have missed.
In addition, it means that C:\ProgramData\{GUID-for-old-apps} never gets deleted, when an app is updated.
It then occurred to me that with this design, if I uninstalled MyApp1.1 and then reinstalled it, there wouldn't be a 'installedupdates.dat' and so, a user would be offered the opportunity to update MyApp1.1 to MyApp1.1. I have just tried this and that is what happened.
My conclusion is that the design is wrong, and has been for many years. Yet that doesn't make any sense - IA wouldn't leave such a silly bug in the product. Which leaves me 'dazed and confused'.
What I think would work is to put 'installedupdates.dat' into C:\\ProgramData\{GUID-Product-Code}. This would be permanent across all versions. I create such a folder to store a 'memento.ini' file that holds the location that the user selected for their 'workspace' (I added a new dialog based on the install location one). This is done in order to prompt them to reuse it during an update.
I will have a look to see if I can understand the code in the 'updates' script and change the location from EXEDIR to {GUID-Product-Code}, and see if that works... or not.
Regards, John
If I copy the 'installedupdates.dat' to C:\ProgramData\{GUID-for-MyApp1.1}, then I am told correctly that there are no updates available.
I searched this forum for 'installedupdates.dat' and I found a number of entries on this topic. The closest appears to be: http://www.installaware.com/forum/viewtopic.php?f=6&t=1906. However, this was reported in 2007, and looks like a bug being reported to me. I am puzzled as to why it hasn't been fixed. Unless, there is something I have missed.
In addition, it means that C:\ProgramData\{GUID-for-old-apps} never gets deleted, when an app is updated.
It then occurred to me that with this design, if I uninstalled MyApp1.1 and then reinstalled it, there wouldn't be a 'installedupdates.dat' and so, a user would be offered the opportunity to update MyApp1.1 to MyApp1.1. I have just tried this and that is what happened.
My conclusion is that the design is wrong, and has been for many years. Yet that doesn't make any sense - IA wouldn't leave such a silly bug in the product. Which leaves me 'dazed and confused'.
What I think would work is to put 'installedupdates.dat' into C:\\ProgramData\{GUID-Product-Code}. This would be permanent across all versions. I create such a folder to store a 'memento.ini' file that holds the location that the user selected for their 'workspace' (I added a new dialog based on the install location one). This is done in order to prompt them to reuse it during an update.
I will have a look to see if I can understand the code in the 'updates' script and change the location from EXEDIR to {GUID-Product-Code}, and see if that works... or not.
Regards, John