For 2009 we upgraded to InstallAware 9 (Studio), and the full install works OK, but I'm having some very confusing problems with the first patch. I get the following error when installing the patch:
The file '...' cannot be installed because the file cannot be found in cabinet file 'PC_CAB_...'. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.
I'm doing a Web Deploy installation with Web Media blocks. Since this error has cropped up I've experimented extensively with various settings changes, trying to isolate the problem. I've tried different settings for compression, MSI File Reduction, MSI Registry reduction, MSI Statement Identifiers, Optimize for Large Files, Include whole files only, Skip Missing Files, NOHARDLINKS, LONGCOMPONENTS, etc...
All of the files that the patch should change are in the TARGETDIR, which is all files ("*.*") in a single folder with "Include subfolders if wildcards used" checked; it contains a handful of files and about 7 subfolders. I've tried various changes between the TARGETDIR files in the original and the patch: changing files in certain subfolders; changing no files in subfolders and only files in the main TARGETDIR folder, etc.
All of my experimentation has resulted mostly in changing the specific file that the patch install chokes on; sometimes it chokes on a DLL (which is unchanged between the original install and the patch) located in a subfolder of TARGETDIR, sometimes it chokes on the main EXE (which is changed) that resides in TARGETDIR, and sometimes it chokes on an unchanged DLL in the TARGETDIR. I've tried removing the file it chokes on (removing the file both from the original install and from the patch), and it just chokes on a different file--it has even choked on a tiny unchanged text file in a subfolder. In each case, it is the "...cannot be found in cabinet file..." error. In no case is it ever the first file it reaches--the install always goes for a good while evaluating lots of other files before it gives the error.
I have been able to successfully patch in two ways: First, by creating a patch that does not change any files between the original installation and the patch--nothing is changed, but the patch installs successfully. The only other way that I have patched successfully since this started is by unchecking the "Include subfolders if wildcards used" checkbox for TARGETDIR; in this case, it successfully patches changes in the TARGETDIR. Of course the folder structure under TARGETDIR is complex; manually adding each folder to the TARGETDIR list is impractical (and I haven't tested that to see if it would work anyway), and besides the "include subfolders" method used to work..!
Also, I don't know why the installer is trying to refer to a cabinet file--I'm not doing anything that I know of that would create or refer to one. The *.msp.log file created with the patch doesn't have any mention of a cab file. CACHESOURCES is on, so I wouldn't think it would have a problem finding the sources from the original install (and in fact it finds them, without user input, when it does successfully patch). So I don't know what the error is actually referring to.
Any help would be appreciated; let me know if more details are needed about anything.