We have a product with many executables and dll dependencies and optional features.
On any given machine there will be a combination of the groups of programs (features) described in the options column. There are 4 main groups of these(the list below is simplified and reality there are more executables and dlls)
OPTIONS/FEATURES (user selectable compenents)
CLIENT EXECUTABLES Dependencies--------------------------------- ------------BSPAlarms BSPInterfaceBSPTimeline BSPNavGuiBSPNavigation BSPLoggingConfigBSPLogView BSPCableDialogsBSPViewer (QT Core runtime*)BSPConfigTool (VC Runtime*)BSPReporter (QWT,Netcdf,NVidia etc*)BSPFixing BSPNetLinkBSPMonitor BSPMapClientBSPMsgPlayBSPNetAppletBSPDebugger
MAP SERVER----------BSPMapServer Netcdf,NVidia etc) (QT Core runtime*)COMMS SERVER------------BSPNet BSPNetLink (QT Core runtime*)
NAVIGATION SERVER-----------------BSPEngine BSPInterface BSPNetLink (QT Core runtime*)
When the (100Mb) install program is initially run the user chooses which components to install.
The client executables are installed on almost every machine. The server programs are installed on just a few machines but have some dependencies in common with the client programs.Some of the dependencies (marked *) are installed as SxS assemblies and when necessary a msi can be run to install newer versions of these. There are also dll files shared by applications in the programs install folder and subdirectories. The above list is not complete but just gives a rough idea of the problem. The problem being that we could perhaps work around wybuilds limitations by creating a separate update package for each group of files but because of cross dependencies we need to run them all in one go and shut down applications as required in order to do so.
I have had success using wybuild on a smaller less complex project where there were just two windows services to (silently) update. What I have here seems to be more of a challenge and I'm not sure if its possible with wybuild. I have been waiting for a new version of wybuild for a very long time now but nothing is forthcoming and now I'm in the situation that I just have to get automatic updates implemented for this project one way or another.
Is it possible to build separate update packages and then somehow apply them all together in one go?
Any suggestions?