[quote="Adam":2go68tkf]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.[/quote:2go68tkf]
[quote="Adam":2go68tkf]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?[/quote:2go68tkf]
As you've likely realized, as of version 2.5 both wyBuild and wyUpdate view your product in a holistic sort of way. That is, your main program and all plugins are "your product" as a whole. There's no way to break your product into "packages" and only deliver updates to packages that are old.
However, there are 2 hacky workarounds.
[size=150:2go68tkf][b:2go68tkf]Hacky workaround #1[/b:2go68tkf][/size:2go68tkf]
You can create a separate wyBuild project for each separate plugin. Build your updates and build wyUpdate for each plugin project.
Collect the each "client.wyc" file from each plugin project. You can rename them to whatever you want (e.g. plugin1.wyc).
Now, to check for updates to this plugin you can use that same wyUpdate that's included with your main executable. But you have to pass to arguments to wyUpdate:
[code:2go68tkf]wyUpdate.exe -cdata:"C:\path\to\plugin1.wyc" -basedir:"C:\path\to\plugin1\directory" [/code:2go68tkf]
Then you can silently check for updates to each of your plugins. See [url=http://wyday.com/wybuild/help/silent-checking.php:2go68tkf]How to Silently Check for Updates[/url:2go68tkf].
[b:2go68tkf]Problems with Hacky workaround #1[/b:2go68tkf]
For every plugin that has an update available a new wyUpdate window will appear telling your user about the update. This will annoy the hell out of your users.
[size=150:2go68tkf][b:2go68tkf]Hacky workaround #2: [/b:2go68tkf][/size:2go68tkf]
Follow the above steps, but alter the wyUpdate source code to check for multiple updates, download multiple updates, and install multiple updates.
Not a great option either.
[size=150:2go68tkf][b:2go68tkf]Best option: [/b:2go68tkf][/size:2go68tkf]
The best option - the one that will require the least amount of hassle for yourself and your users - is to simply collect the "official" plugins with your product. Then, just update all the plugins along with your executable.
The great thing about this option is that even if you release a new update every day the patching algorithm included with wyBuild will generate tiny update files.
[quote="Adam":2go68tkf]Secondly, can the wyUpdate classes be used to update a package without a UI, as in the case of the website?[/quote:2go68tkf]
Yes, and no. The trouble here is user permissions. Servers are typically configured such that all executing scripts are run as a limited user (or on Vista, 7, Server 2008 R1 & R2, as an Admin without elevation). This coupled with the fact that the 'wwwroot' folder is almost always protected as if it were a system folder. This means that wyUpdate can check for updates perfectly fine, but it's going to need to show a UI to prompt for Admin privileges.
See [url=http://wyday.com/wybuild/help/silent-checking.php:2go68tkf]How to Silently Check for Updates[/url:2go68tkf], specifically read the section "Silently Checking without using the AutomaticUpdater control".
This way wyUpdate completely autonomously (and silently) checks for updates. If updates are found it shows itself. If no updates are found it exits immediately and returns 0.
[quote="Adam":2go68tkf]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.[/quote:2go68tkf]
As I mentioned above in "Best option" you should collect the plugins and create updates to your whole product. I'm not just saying this because it works around limitations in wyBuild and wyUpdate.
I'm making many assumptions about how your team is set up, so what I'm about to write may be way off the mark. As the owner of the product it would be best if you confirmed the plugins work as expected before they reach your users. This way you can confirm "plugin X" works as expected before your users ever see it.
If you're suggesting keeping the plugins separate merely as a workflow optimization, then ignore the above paragraph. You might also want to check out automating the update build within wyBuild (see: [url=http://wyday.com/wybuild/help/commandline.php:2go68tkf]Build Updates from Commandline[/url:2go68tkf])
I hope I've answered all of your questions. If I misunderstood you, or if you have followups, I'll be glad to answer them.