Is it possible to provide a full package for download?

From my current understanding of wyBuild, it is not possible to provide an offline installer - the setup package consists of wyUpdate.exe and client.wyc files and these should be provided to the client while on the server, wyserver.wys and the diff patches are uploaded.

wyUpdate.exe downloads the required package from the server and installs it on user's computer.

Is my understanding correct? How do I proceed if I want to create offline setup packages that will install full version of the product without internet connection?

From my current understanding of wyBuild, it is not possible to provide an offline installer - the setup package consists of wyUpdate.exe and client.wyc files and these should be provided to the client while on the server, wyserver.wys and the diff patches are uploaded.

wyUpdate.exe downloads the required package from the server and installs it on user's computer.

Is my understanding correct?

Exactly.

How do I proceed if I want to create offline setup packages that will install full version of the product without internet connection?

wyBuild doesn't create installers yet. So we've been recommending using either NSIS, InnoSetup, or WiX to create your installer.

We use NSIS for our wyBuild installer. If you need to make MSIs then use WiX.

Thanks for the speedy response. I am trying to figure out wyBuild/wyUpdate so please excuse my newbie questions 🙂. So far it seems like a fine product, but I think I have assumed some features that it does not have and I have not yet managed to create a working sample.

The workaround to change file extension without needing to change the mapping on IIS is very nice.

So I should just include the wyUpdate executable in my current setup (created using WiX) while wyBuild will serve only the purpose of building correct diffs for the wyUpdate to work from the client machines?

What is the "Files under Program Files" within wyBuild option for? Should I just include all files from an installed copy of my application for the first version? Then for the 2.0 version, I install the application on a test machine and drag and drop the target files from version 2.0 installed in Program Files into wyBuild?

After publishing updates online, wyUpdate.exe updates the existing Program Files\My app\ files with the diff, right?

How do the MSI file integrity checks play with this? Or does wyUpdate create a new subfolder within Program Files\My app\2.0 to ensure that MSI does not auto repair the modified files?

Thanks for the speedy response. I am trying to figure out wyBuild/wyUpdate so please excuse my newbie questions 🙂. So far it seems like a fine product, but I think I have assumed some features that it does not have and I have not yet managed to create a working sample.

Ok, I'll try to help.

So I should just include the wyUpdate executable in my current setup (created using WiX) while wyBuild will serve only the purpose of building correct diffs for the wyUpdate to work from the client machines?

Yes wyBuild diffs your versions (include all the files, wyBuild knows what to keep, what to patch, and what to delete). The wyUpdate.exe and the client.wyc file you include with your program. In the base directory of your program to be exact.

What is the "Files under Program Files" within wyBuild option for? Should I just include all files from an installed copy of my application for the first version? Then for the 2.0 version, I install the application on a test machine and drag and drop the target files from version 2.0 installed in Program Files into wyBuild?

You mean the "Your program's folder" folder? That's where you add all the files in your main installation folder. For instance, if you install 3 files into C:\Program Files\Your App:

  • A.exe
  • b.dll
  • c.txt

Then add the files to these files to wyBuild in the "Your program's folder". So it will look like this:

Your program's folder   > A.exe   > b.dll   > c.txt

You have to include all the files for every version. wyBuild does the hard work of comparing the files, and generating the patches. If you haven't seen it already, we have a video that explains it nicely.

Then when you build your installer include these 3 files along with wyUpdate.exe & client.wyc.

After publishing updates online, wyUpdate.exe updates the existing Program Files\My app\ files with the diff, right?

Correct.

How do the MSI file integrity checks play with this? Or does wyUpdate create a new subfolder within Program Files\My app\2.0 to ensure that MSI does not auto repair the modified files?

wyUpdate doesn't create a separate folder, it updates the files directly. If a problem arises during the update (file failed to patch, user cancels the update, any unforeseen circumstance) then wyUpdate quickly and quietly rolls back to the previous working version.

However, wyUpdate doesn't integrate with the MSI repair system. Not yet at least. If your user runs the MSI repair then they'll likely be rolled back to the installed version.

You can modify this behavior as part of the update by running scripts, updating the MSI files, etc. The executing files help document would be a good place to start.

Tell me if this helps.

Thank you very much for the explanation. I have now successfully integrated wyUpdate into the setup and it works like a charm. I need to investigate the programmatic updates option to decide whether wyUpdate+wyBuild will fit our needs fully.

Maybe you could provide some pointers for me and for future reference for others:

I have seen the very nice tutorial video that shows the updater control in action - this is a nice alternative, but does not suit my current needs - I would like to notify the user about an update after each start of the application (ClickOnce-style).

Is it possible to use some updater API (from a .NET app) in a way that informs the user about upgrades (and their description) within application UI or is running wyUpdate.exe externally the recommended approach?I would like to programmatically check for updates after each start of the application and offer the user the option to accept and install the update within the UI of my application.

If the update procedure itself requires wyUpdate.exe to run, than this step seems redundant - wyUpdate.exe would show the same information again.

I applaud this product very much, but the documentation is really missing. Luckily you have this forum 😉

I have seen the very nice tutorial video that shows the updater control in action - this is a nice alternative, but does not suit my current needs - I would like to notify the user about an update after each start of the application (ClickOnce-style).

Well, the easiest way would be to use the AutomaticUpdater control. It handles all the details of the checking on a customizable schedule (every day, week, month, every 5 days or whatever you want).

Is there any reason in particular you don't want to use the AutomaticUpdater? Maybe I'll be able to help you fit it with your needs.

If you don't want to use the AutomaticUpdater then you can use wyUpdate to silently check for updates and only show itself if their are updates available. (See the silent checking with wyUpdate help document).

Is it possible to use some updater API (from a .NET app) in a way that informs the user about upgrades (and their description) within application UI or is running wyUpdate.exe externally the recommended approach?I would like to programmatically check for updates after each start of the application and offer the user the option to accept and install the update within the UI of my application.

Yes, the AutomaticUpdater can do just that. It uses the wyUpdate to do all the heavy lifting. The AutomaticUpdater is essentially a UI component that shows changes and can control wyUpdate.

I applaud this product very much, but the documentation is really missing. Luckily you have this forum 😉

I apologize for the weak documentation. We're expanding these documents even as I write this.