I finally got the updates working okay by pointing the app installer (Updater field in the aip project) to the dev UpdateConfig.txt file created by the Update.aip project. The Update.aip project also pointed to the .msi file generated by the AppInstall.aip project. The /silent option in the code seemed to work okay, but the frequency check for updates value of 2 days was a *constant*, irritating hassle. I could find no documentation to disable the check (0 days did not work). Eventually I found -nofreqcheck in the forum, but that conflicted with the advice that the /silent option had to be alone. Anyhow, my point here is that at one point, the update process worked.
(Oh, PS, in the C# example code, there is an undocumented delay of 10 seconds for the update dialog thread. Why? I eventually guessed it was to prevent the app dialog from covering up the updater dialog. Is that the reason.)
Of course, getting updates working in my dev environment is pretty useless, so I next tried to check for update files on a network drive so that multiple machines (including mine) could check for updates. I have had nothing but failures for most of the day. Error: "The update file size does not match the configuration size." Yet when I check the sizes using 'dir' in a Command Window, the disk sizes match exactly. I have attached a screenshot of the almost useless error message. The software has its hands on the filenames, pathnames, and file sizes - why doesn't it print the values in the error message to be specific and point me to the error? Why do I have to guess? What files exactly is it reading? What sizes exactly is it seeing? Frustrating! I love you guys and AI, but you could easily do better.
Q1. Can I use "-nofreqcheck /silent" in the code from the C# example?
Code: Select all
static void StartSilent() {
// The delay lets the application boot first to put the updater app on top
// of the application window
Thread.Sleep(4000);
var process = Process.Start(UpdaterModulePath, " /silent");
process.Close();
}
Q2. Does "Publisher" in the Product Definition turn into Manufacturer in the registry keys that are created by default on every install? No registry keys are being created by my project - do I have to do something special to get them created so the updater can reference them?
Q3. The AppUpdate.aip Update installed Detection screen uses HKUD\Software, not HKCU or HKLM (which are not greyed out in the Registry section). Exactly which keys are created by default? Exactly what do I need to do to create keys for the updater to use (HKUD)? The documentation is not good, and should be improved, IMHO. I think I must have gone through 10 or 12 pages to try to get updates working because no single page or tutorial told the whole *working* procedure. I have spent DAYS trying to get things to work, and I am stalled on using a simple network drive (sigh).
Thank you.