Testing Sucessful - now Productive

Thanks to your excellent support (Thanks again Sam), 😀 I could now sucessfully test my new Project with the AutomaticUpdater.

By the way: the checking delay was caused by our firewall ,and could be avoided by setting a internal siteas the update path for wyUpdate itself ,without custom build directly inside wyBuild.

Everything seems to working as expected, just a few Minor open Questions ,before i release the firstVersion to my clients.

1. Small Visible Annoyance: 🙁

When i detect the Update and force the Install with InstallNow() , for a second,the Process of my own Application will be listed to be killed, even there is no jobs or anythingthat could stall the closing...I don't have to add an Application.Exit() or anything like that after i called for InstallNow() right?Or Probably i should just wait a few seconds after the ReadyToBeInstalled Event has been triggeredbefore calling into InstallNow() to avoid this problem?Anyway, it's not something grave, just avoiding that Processes Window would be less "Intrusive" to my Users.

2. Unclear about the Inclusion of wyUpdate.exe/client.wyc 🤔

I did several testing ,and read your Walkthrough, but i'm not 100% certain i understand it correctly.This is how i believe i should handle those 2 files:

- Always include them into my own Setup.exe to distribute if necessairy.- Never include them in the File List that is inside wyBuild ,even not in the first Version, nor in any Updates.

That's how i tested it ,and it seems to work ,but i'm not 100% positive, that i understood it correctly.

3. All To Files 😲

After a few Test rounds, i do have alot of Data on my Computer and on the Server.So here my Questions:

- If i delete Versions in wyBuild ,that are older, the wyu files of corse can't be rebuild, but they still exist on my server, so would the Update still work, or does the resulting "wyserver.wys" file prevent this? Or in other Words, do i need to keep all old Versions on my Computer and back it up, in Order to keep all distributed clients updated, or would the .wyu files be enough.

- The files with all.to.version.1.x files are big ,of course because they need to include all files. If i delete such an all.to.version , does the Updater still do the incremental Updates. Example there is a file 1.0.1 to 1.0.2 and one 1.0.2 to 1.0.3 and one file all.to.1.0.3 If i would delete the file all.to.1.0.3 ,would it still work, if the version of the client is 1.0.1 ?

Thanks for your time.

I don't have to add an Application.Exit() or anything like that after i called for InstallNow() right?

That's correct, the AutomaticUpdater already handles exiting for you.

Anyway, it's not something grave, just avoiding that Processes Window would be less "Intrusive" to my Users.

We'll look for ways to make this smoother for the end-user.

Unclear about the Inclusion of wyUpdate.exe/client.wyc

[...]

- Always include them into my own Setup.exe to distribute if necessairy.

Correct.

- Never include them in the File List that is inside wyBuild ,even not in the first Version, nor in any Updates.

Well, you should never include wyUpdate.exe in your updates because wyUpdate updates itself in a completely different way (as described in the "How to make a custom version of wyUpdate" article.)

The client.wyc file is a different case. You can include this file in your updates.

- If i delete Versions in wyBuild ,that are older, the wyu files of corse can't be rebuild, but they still exist on my server, so would the Update still work

You shouldn't delete your old versions from your computer. wyBuild always reads these files from disk when it creates patches.

That being said, after you've uploaded your updates to your server you can delete the *.wyu and *.wys files from your computer. Even if the updates get corrupted or accidentally deleted on your server you can always rebuild and reupload the updates in wyBuild.

Also you can delete old updates from your server. For instance let's say you release updates to version "1.2" and you had previously released updates to version "1.1" you'll now have 2 sets of files on your server:

  • "*.to.1.1.wyu" files
  • "*.to.1.2.wyu" files

You can delete all the "*.to.1.1.wyu" files because they'll no longer be referenced from the *.wys file.

So, the short answer is never delete your original source binary files but you can sometimes delete the *.wyu files from your server depending on the case.

The files with all.to.version.1.x files are big ,of course because they need to include all files. If i delete such an all.to.version , does the Updater still do the incremental Updates.

You can opt out of the catch-all update altogether. In wyBuild, click File -> Properties -> Update & server files:

[attachment=0]no-catch-all.png[/attachment]

Uncheck "Create a catch-all update for corrupt installations". Now wyBuild will only create the patch files.

Thanks Sam for your explanations.

Much clearer now for me.

Unfortunately i run into a strange Problem, while testing with a VPN connection by Wireless.

Until now i just tested in in-company ethernet connections.

With the Same Software i get an Error: "wyUpdate failed to start." (wyUpdate existed prematurely)only under the VPN Connection.

I guess it will have to do with some timeout settings, while trying to access the server files.

There is access to the files, i checked it manually.

Any Hints would be appreciated.

I will take a look into the Source Code to find the problem myself, but if you have some directions,it would be useful.

Additional Info: during VPN the Proxy of the Browser will change automatically, however since i set the WyUpdate Update location to a file:// adress, it shouldn't use the Proxy anyway, i will try with other settings, to find the culprit 😈

More Info: Launching WyUpdate.exe will suceed, it seems to be a problem from the AutomaticUpdater.dll, maybe it doesn't wait long enough for the results?

With the Same Software i get an Error: "wyUpdate failed to start." (wyUpdate existed prematurely)only under the VPN Connection.

I don't understand. Are you saying that when you use the computer locally, then the AutomaticUpdater works fine, but when you're accessing the computer using a VPN then you get the "wyUpdate failed to start error"?

Can you give me the commandline options you're using to start wyUpdate (that is, the wyUpdateCommandline property).

I fiddled around a bit ,now it seems to be working (i will test it further)

I didn't use the Command Line parameters at all,

What i did is those Properties:

When it didn't work:

- DaysBetweenChecks 0- WaitBeforeCheckSecs 1

After i changed them to:

- DaysBetweenChecks 1- WaitBeforeChecksSecs 3

And added a ForceCheckForUpdate in the Load of the Form, it seems to work.Will test on a different machine too (because this is my developer machine)

Maybe a short description what i'm trying to do:

In Program.cs i check the Database, which has the Entry with the newest Version Number,if it is different, i open a special Form with the AutomaticUpdater Component on it (at this point,i actually know that there must be a new Version ready to be installed).In the Normal Case i open the MainForm, which doesn't have the AutomaticUpdater component.

If i open the program with /checkupdate, the Database is ignored and the Form with the AutomaticUpdateris launched to do a manual check for the Update.

Worked fine so far, but i guess there are reasons to fail ,which are not 100% clear yet.

I will report more if i found out more.