Firstly, I have to give credit where it's due! The wyBuild and wyUpdate releases are excellent. I've been struggling for a long time to find something to do updates this well and this simply. And your open source extras are really fantastic icing on the cake.
I'm in the process of testing out the wyUpdate system to see if it can fulfill all our quirky requirements, and it obviously does cover most right out of the gate. I want to ask you about a specific scenario though and see what ideas you can give me.
Just to quickly explain our system. We have a website and executable that tie together with a plugin system. Each plugin obviously has a specific job, and consists of an assembly containing the plugin class, and a usercontrol that the website displays to configure the plugin class. Once plugins are configured, the "executer" executes each one in turn, using the data gathered by the usercontrol.
wyBuild is perfect for updating the "executer" itself, but I'm trying to work out a system for updating the plugins individually. Would I be able to build update packages that target one dll assembly as the main item, instead of an executable, and then use the wyUpdate API to update each one in turn? Secondly, can the wyUpdate classes be used to update a package without a UI, as in the case of the website?
Just in case I'm not being clear I'll spell out my desired execution...
In the global.asax of the website we look for all plugins registered. What I would like to do is then check for, and update if required, each plugin at this stage, before the website starts executing directly. Obviously there is no UI available here as we will be executing in the IIS worker process.
Then on the executer side, the executer will start, and do it's own update check using the Automatic Updater component. Then, just like the website, it will check for the list of plugins available, and update each one if required, before starting the main execution (obviously here the UI would be fine, as long as I can do it without user interaction).
In case you're wondering, I want to keep the plugin updates separate as the plugins are developed by a range of developers all over the place, so the more separated and autonomous the system for those developers and me, the better.
Assuming in advance, thank you so much for taking the time to read this.