WebUpdate - Update files in subfolder

I've seen a few topics on this forum about this, but I failed to extract the neccessary information how to accomplish this. We're using version 2.2.4.0 of the components.

We would like to publish our updates with an automated process within our continuous integration system. 

Currently UpdateBuilder is building all of the files, but whenever we set the targetdir as {app}\SubDir, the files are still being extracted within the application directory. It's actually alright for us, if the software needs elevated rights to do the update.

In the future we also want to support tools, which have data that are several subdirectories deep.

Currently every subdirectory has its own cab-file.

Is there any way to support this?

Currently the INF file looks like that:


[update]
newversion=1.7.1.0
localversion=Main.exe
[files]
count=3
[file1]
url=https://xxx/Main.CAB
newversion=1.7.1.0
localversion=Main.exe
targetdir={app}
descr=Main application file
compressed=0
filesize=5387776
mandatory=1
[file2]
url=https://xxx/PARAMETER.CAB
localversion=PARAMETER.INI
targetdir={app}\Configuration\
descr=Configuration files
compressed=0
filesize=33153
mandatory=1
[file3]
url=https://xxx/BINARIES.CAB
localversion=BINARIES.dll
targetdir={app}\BIN\
descr=Binary files
compressed=0
filesize=4798464
mandatory=1
[application]
appupdate=1
appname=Main.exe
appcomps=Main.CAB PARAMETER.CAB BINARIES.CAB


I've seen a comment about preparing your own cabs here:
https://www.tmssoftware.com/site/forum/forum_posts.asp?TID=1651&PID=5718&title=webupdate-targetdir-problem

I still don't know how to do that though. Can I set the relative folder after UpdateBuilder has created the file? I wouldn't know how to implement TCABFile within our process.

I see you make all CAB files application components. Application components are being externally extracted by the spawned updater app and as such, when you want to use subfolders in combination with this, you'd need to add this relative path in the CAB file itself as the spawned updater isn't seeing the update control .INF file.

Thanks for the reply.

So, I removed PARAMETER.CAB and BINARIES.CAB from appcomps and added "EXT.INF".

I also added EXT.INF to the file list like this:

[file4]
url=https://xxx/EXT.INF
mandatory=1
hidden=1


EXT.INF looks like this

[FILES]
COUNT=2
FILE1=PARAMETER.CAB
TARGET1={APP}\Configuration
FILE2=BINARIES.CAB
TARGET2={APP}\BIN



This way, I can use the files generated by the UpdateBuilder and only have to do minimal adjusments by hand. Is this the best way to approach this? It seems to work as far as I can tell.

This is indeed the approach we had envisioned in the design of TWebUpdate