Crash nut not updated

Hello

I downloaded wyUpdate and integrated it into our application. I started it and it updated! But Then an Exception ocurred after the updates were installed. Now the updater believes it did the update but still the old exe is active and I can tell it to check for updates as much as I want. It says no updates.

Essence of the Exception stack (I have it only as picture):auBackend_Closeappnow(), collection was modified, enumeration operation may not execute.

Is it true, that wyUpdater does in no way check if it really installed the file?

Best regards

I'm going to need more information to help you solve this.

Essence of the Exception stack (I have it only as picture):auBackend_Closeappnow(), collection was modified, enumeration operation may not execute.

The AutomaticUpdater crashes, but not wyUpdate? Can you reproduce this?

Is it true, that wyUpdater does in no way check if it really installed the file?

Try running wyUpdate.exe -- does it say you have the latest version installed? Did you include your new exe file in wyBuild?

Wow, fast response, I'm impressed.

We install into : <Drive>\Users\<User>\AppData\Local\OurCompany\OurProduct1\ Let's call this "root".wyUpdate is located at root\Updater\wyUpdate.exe I started wyUpdate.exe manually (as you requested). It says program is up to date. I compared client.wyc. It is different from the version 1.0. So, the update to 1.1 changed the file and later crashed but did not replaced the executeables...Have you a conceptual problem 🤓 ? Cough, cough..... It really seems, there is a waekness. I mean, the updater control could easily get the version of the dlll it is implemented in and send it to the wyUpdate.exe. But perhaps my code is not really that good. What we want:

Our App: C# application, Windows Forms unsing updater control.It runs in user context but in background. There is no visible form. The main form is hidden. Only after the user pushes a hotkey our application appears. The application is accessable through the notification area. There, the user can click on our icon and a menu pops up. In the menu the user can select "Update". Then the UpdateForm opens and the user can check for Update. He can then decide to install it.

I added the updater control in my "UpdateForm". I need an instance of the updater if the user wants to update via and also if the program starts because I assumed I need to check for " if (!automaticUpdater.ClosingForInstall)". But as I write this here maybe I have only to do this if I open the UpdateForm and not at program start where we use MainForm? Because the crash happened at program start after the installation so the UpdateForm was not visible I used it only for the check.

Another thing:You write data to the users roaming profile folder (4 *.autoupdate) files. Is this intended? I mean, we don't install our application in the roaming profile. Does this data affect an installation of the same user on another machine?

best regards

Have you a conceptual problem ? Cough, cough..... It really seems, there is a waekness. I mean, the updater control could easily get the version of the dlll it is implemented in and send it to the wyUpdate.exe. But perhaps my code is not really that good. What we want:

The client.wyc file contains the "current version" of your app. So if there's a problem anywhere in the updating, wyUpdate never updates this file and it rolls back all changed files.

Make sure you're including every file in wyBuild. wyBuild does the hard work of comparing your files and generating the smallest possible path. But you must include every file for every version. And your versions must be stored in separate folders. See: Walkthrough for your first time using wyBuild.

You write data to the users roaming profile folder (4 *.autoupdate) files. Is this intended? I mean, we don't install our application in the roaming profile. Does this data affect an installation of the same user on another machine?

This is a bug -- we should store files in the local data. We'll fix that.

Hello

Thanks for your reply. I have a basic question to perhaps overcome my update problems:Is the following workflow for a new release correct?

- I build my programs binaries (Visual Studio). => V1.0- Start wyBuild and create version 1.0. This results in a client.wyc of v1.0- Copy client.wyc of this wyBuild to my Programs binary folder.- Build Setup files (MSI) of my Program so it is delivered with the correct client.wyc - Then I make code changes.- Build my programs binaries (VS) . => V1.1- Start wyBuild and create version 1.1 This results in a client.wyc of v1.1- Copy client.wyc of this wyBuild to my Programs binary folder.- Build Setup files (MSI) of my Program so it is delivered with the correct client.wyc -- and so on ...In betweeen of course the publishing of the wyBuild update files to the server.

In the Build dialog of wyBuild is the sentence " but you can only include the "client.wyc" file in your database (not wyUpdate.exe)Waht happens to user which download version 1.1? Without wyUpdate.exe?

- Copy client.wyc of this wyBuild to my Programs binary folder.

Make sure you're creating a separate folder for each of your versions of your software. That is, have a 1.0 folder, a 1.1 folder, etc. Don't just drag files from your build folder into wyBuild -- wyBuild only references files from disk, it doesn't store or move files for you.

In the Build dialog of wyBuild is the sentence " but you can only include the "client.wyc" file in your database (not wyUpdate.exe)Waht happens to user which download version 1.1? Without wyUpdate.exe?

wyUpdate self-updates separate from your product. So don't include wyUpdate.exe in your wyBuild project. However you must include wyUpdate.exe and the client.wyc with your installer.

Does this help clarify things?

Hello

If you ever are bored...pleeeease free us developers from such version jungle/file mess/xcopy hacks. Why can't I use the same build folder (build output of IDE, Visual Studio in my case) which I use for my Setup projects also for wyBuild? I mean, wyBuild knows best what to include in the update and what not.

Thanks

wyBuild creates delta patches from one version of your software to another. That means it requires old versions of your software in order to create patches from that old version to the latest version.

You can always use wyBuild to just deliver "full file" updates -- this doesn't require moving your versions to separate folders. I can explain this if you want -- however you should know that you'll lose the advantage of tiny patches.

But we're working on making this easier. 2.7 will be a leap in this direction.

Hello

Thank you for your answers. It still crashes...Some questions (with angry boss in back: "This should be implemented in 5 Minutes".....)

************************Regarding your last post:I understand that you need the files in different versions. But I don't understand why I must make the wyBuild file structure different from the file structure for the setup. But if you improve that soon.. Well, let'see************************Is it still true, the control must be on the main form?https://wyday.com/forum/t/806/automaticupdater/#post-4076************************Our code has a mutex at startup to prevent starting our program two times. Is this a problem?

************************

Is it still true, the control must be on the main form?https://wyday.com/forum/t/806/automaticupdater/#post-4076

Yes. Or you can use the AutomaticUpdaterBackend for more complex layouts. But the AutomaticUpdater must be on the main form.

Our code has a mutex at startup to prevent starting our program two times. Is this a problem?

No, mutexes will have no effect on the AutomaticUpdater.

I understand that you need the files in different versions. But I don't understand why I must make the wyBuild file structure different from the file structure for the setup. But if you improve that soon.. Well, let'see

Do you mean why you have to exclude wyUpdate.exe? Because wyUpdate is updated separately from your app.