Update complex system (with few services and plugins)

Hi, I'm looking for a solution to update a complex system (without user interface) that includes the following parts:1. Two windows services that are the kernel of the system (.Net 4).2. Many plugins extensions to the system that each one of them is:a. A unity 3d executable (.Net 3.5 that runs over Mono environment)b. Each user have a different set of unity projects

The solution that I think of was to create one WYbuild project for both of the services and a different WYbuild project for each Unity 3d plugins executable.Only one of the services will be responsible to check for update (also for the services and for the plugins extensions that installed on the machine (the plugins list exist in the service configuration file).

Until now, its looks like a good solution for my needs? Or probably could you give a more elegant solution?

Another thing that I will want my system could do, is to download and install a new plugin extension (if the user adds the extension name to the service configuration file). Is it possible?

And the last things that I would like to know if WYbuild is support of are:1. Beta versions A versions that will be downloaded and install only on clients that configured in some way as a beta sites.2. Critical updates A way to mark an update as a critical update that install immediately (and not like other updates that will installed on specific time).

Thank you with advance,Elad

The solution that I think of was to create one WYbuild project for both of the services and a different WYbuild project for each Unity 3d plugins executable.Only one of the services will be responsible to check for update (also for the services and for the plugins extensions that installed on the machine (the plugins list exist in the service configuration file).

Until now, its looks like a good solution for my needs? Or probably could you give a more elegant solution?

That'll work.

Another thing that I will want my system could do, is to download and install a new plugin extension (if the user adds the extension name to the service configuration file). Is it possible?

Yes, but it requires a minimum of the client.wyc file for the new plugin to be downloaded by your app. (That is, wyUpdate needs to know what will be downloaded). Whether this is easier/harder than just downloading the new plugin is for you to decide.

And the last things that I would like to know if WYbuild is support of are:1. Beta versions A versions that will be downloaded and install only on clients that configured in some way as a beta sites.2. Critical updates A way to mark an update as a critical update that install immediately (and not like other updates that will installed on specific time).

Yes, but you have to manually separate them. That is, you have to host the different "channels" in different folders on your server. Then you can pass in the appropriate server location to wyUpdate.

Tell me if that helps.

Thank you Sam,

About the first answer: Is it possible to redirect the AutomaticUpdaterBackend to another *.wyc file? I prefer to do the update process from code (and to get the events that notify if after the update is finished). If it is possible, how could I do it? And is it possible to change the default name of client.wyc to another name from wyBuild?

About the second answer " Yes, but it requires a minimum of the client.wyc file", which kind of client.wyc file should I create ? The file from the first version? Or from the last version?

About the third answer, can I also change the server URL from code and not as an exe parameter?

Thank's again,Elad

About the first answer: Is it possible to redirect the AutomaticUpdaterBackend to another *.wyc file?

Yes, but you can't switch between client.wyc files. That is, you can't use 1 AutomaticUpdater or AutomaticUpdaterBackend instance to update multiple products. Read here for how to pass in custom client.wyc locations.

About the second answer " Yes, but it requires a minimum of the client.wyc file", which kind of client.wyc file should I create ? The file from the first version? Or from the last version?

Create an empty version in wyBuild (i.e. no files), build the client.wyc file. Then when wyUpdate updates from this blank version the plugin or app is downloaded in full.

About the third answer, can I also change the server URL from code and not as an exe parameter?

Yes, use the "wyUpdateCommandline" property.