Patch problems: ...file cannot be found in cabinet file

Got a problem you cannot solve? Try here.
huevo
Posts: 7
Joined: Mon Jul 23, 2007 5:58 pm

Patch problems: ...file cannot be found in cabinet file

Postby huevo » Sat Sep 19, 2009 6:51 pm

I started in 2007 using InstallAware 7, and each year we create a new version of our product (07, 08, etc.) do a full install, and then patch it several times over the course of the year.

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.

huevo
Posts: 7
Joined: Mon Jul 23, 2007 5:58 pm

Zeroing in on the patch problem

Postby huevo » Wed Sep 23, 2009 1:21 pm

I have been doing lots more testing to get to the bottom of this issue, and I've had a breakthrough; as crazy as this seems, InstallAware seems to be choking on specific file names.

Here's how I created the setup file:
    -Create a new installation project using Basic Setup
    -Set the Product Name ("AAA Setup Tester") and Product Version (2009.1.0) on the Project Properties screen
    -Add a target file to the TARGETDIR: *.* on "[...]Desktop\\1.0 Simple", with the "Include subfolders if wildcards used" checkbox checked
    -Hit the Web Deploy button to create the setup file
Next, to create the patch:
    -Change the Product Version to 2009.1.1
    -Change the Source Path of the target files for TARGET dir from "[...]Desktop\\1.0 Simple" to "[...]Desktop\\1.1 Simple"
    -Add the setup file created above ("AAA Setup Tester.exe") to the Patches screen
    -Hit the Patch (or Build Patch) button to create the patch file
When I used my real install folder, I see the same behavior that I described in my previous post--I get the "The file [...] cannot be installed because the file cannot be found in cabinet file [...]" error on random files (mostly EXEs and DLLs) in the TARGETDIR or its subfolders when running the patch, and when I remove that file (rebuilding both the setup file and the patch with that file deleted from the source directories) it simply gives me the same error on a different file.

I finally isolated a specific subfolder which, although it did not contain the files that the patch would blow up on, when that entire subfolder was removed the patch would install correctly. I further found that, when I installed without the offending subfolder and then added it the patch, the patch would blow up on specific files. I removed those files one by one, and found that there were 11 files of the 387 small (1-6kb) text files in folder that would cause the patch to give the same "...cannot be installed..." cabinet file error. Unlike the spurious errors on large binary files I had seen earlier, once I removed these 11 files everything worked fine, and whenever I added them back in (whether the TARGETDIR or a different subfolder) they would always cause the same error. I even renamed an existing file that had been installing properly to one of the offending names, and that caused the error also.

So, it seems that there are 11 file names that cause the cabinet file error. They are not long at all--I have much longer file names in the same subfolder. Moreover, most of them have been in the same subfolder, unchanged for years, working with InstallAware 7. In fact, they patched properly with the 30-day demo of InstallAware 9; it is only since I installed the licensed version of InstallAware 9 Studio that this problem has appeared.

Here are the file names (not case-sensitive):
    dray format.impline
    Farmers Wts.exp
    Farmers Wts.impexpline
    Kasberg Gin.impline
    Load Report.exp
    Load Totals.expline
    QRNet-2007.Exp
    QRNet-2007.expline
    QRNet.detail.expline
    STX00.Detail.impexpline
    Transmission.transexp

I see no pattern here, especially considering that many other similarly named files don't cause a problem. In every case, adding or removing a single space allows these files to patch properly.

I'd like to know if anybody else can reproduce this problem, and I'd really love to find out what's going on here. We may be able to get around this for now, but obviously renaming random files in our system because they seem to choke our installer is a pretty untenable situation.

huevo
Posts: 7
Joined: Mon Jul 23, 2007 5:58 pm

Patch problem--now reproducible

Postby huevo » Sun Sep 27, 2009 7:45 pm

I have boiled the problem down; here's how to reproduce it:
    -Create a new project using the Basic Setup template
    -Add a target file to the TARGETDIR: "*.*" on a particular folder (I used "C:\\Target"), with the "Include subfolders if wildcards used" checkbox checked
    -Add a single text file to C:\\Target--the name and content don't matter; I called it "test.txt" and its only contents were also "test.txt"
    -Hit the Web Deploy button to create the setup file
Since we left the Product Version at the default value of 1.0, we've created a setup file with a version of 1.0. It should install fine; you'll have a project containing only the "test.txt" file.

Next, we'll create a version 1.1 patch file that will exhibit the problem:
    -Add 3 new text files to C:\\Target, (again, the contents don't seem to matter--mine had their file name as their only content): "no problem.txt", "Farmers Wts.exp", and "Farmers Wts.impexpline"
    -Change the Product Version to 1.1
    -Add the setup file we created earlier as a Patch Reference
    -Build the patch file
When I run this patch, I get the same error I've been seeing repeatedly, this time complaining about Farmers Wts.exp:
The file 'Farmers Wts.exp' 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 set the "Exclude Wildcards" option on the TARGETDIR file to "*Farmers?Wts.exp" to exclude the file, but after rebuilding the patch and installing it again I got the same error on "Farmers Wts.impexpline" so I excluded that one too ("*Farmers?Wts.exp;*Farmers?Wts.impexpline"). Now the patch would successfully install, and the project will contain two files: "text.txt" and "no problem.txt".

Now we'll create a 1.2 patch and see a new problem:
    -Add a new file like "version 1.2.text"
    -Change the Product Version to 1.2
    -Add the 1.1 patch file as a Patch Reference
    -Build the patch file
If I run the patch against the original 1.0 install it will work fine, but if I've already installed the 1.1 patch I'll see the following error:
The InstallAware Wizard for Basic Setup Test has failed: "The upgrade cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade". Please check your settings and try again.
If I remove the 1.0 setup file as a patch reference (leaving the 1.1 patch file as the only patch reference) it won't even compile; I'll see an error when I try to compile the patch complaining about "no compatible base packages found for upgrade package".

So, it looks to me that InstallAware 9 (or some Windows Installer technology that it uses) has a problem with similarly-named files. If we exclude those files, we can apply a single patch but then subsequent patches can't patch against the first one. In other words, the only workable solution I can find to the first problem causes a worse problem.

huevo
Posts: 7
Joined: Mon Jul 23, 2007 5:58 pm

Final notes

Postby huevo » Sun Sep 27, 2009 7:53 pm

I should note that in our production installation we distributed the "Farmers Wts.exp" and "Farmers Wts.impexpline" with the original setup, and they installed properly; however this causes cabinet file errors upon applying the first patch which complain not about the offending file but other random files. The errors are much clearer when you add the files in the patch (which is why I did it that way for the demonstration), but we don't have the option of dealing with it that way in our production installation because the offending files are already part of the installation.

I desperately need some help finding a solution here. We install to about 70 PCs at 40+ locations, and we count on the patching system to keep them updated. We really, really need to put together some patches that those PCs can install, and ideally something that doesn't involve uninstalling and reinstalling each PC. However, at this point even reinstalling everything would be preferable to the current situation because we can't get vital updates out at all.

Thanks in advance for any help you can think of!

johnbitner
Posts: 5
Joined: Thu Jan 29, 2009 3:18 pm

Anybody know how to fix this?

Postby johnbitner » Thu Oct 01, 2009 11:12 am

I have this problem and my company is DEAD in the water with a much needed patch until its resolved.

Using build: 8.01.AME-REJ.rtm.110408

johnbitner
Posts: 5
Joined: Thu Jan 29, 2009 3:18 pm

Where is the customer support?????

Postby johnbitner » Fri Oct 02, 2009 10:44 am

This is the response I got from IA on the cab file issue i reported.

"I am afraid that we are unable to offer any disagnostic assistance with InstallAware editions before 9.

However, I would advise logging your installation in order to try and collect additional information.
Andy Neillans
InstallAware Support "


We purchased IA 8 (your current version at the time of our purchase) in March of this year. Now about 7 months later you don’t support that version and we can’t get support on it. You have to be joking… If we did business like that we wouldn’t be in business very long. We support our software products a few versions back and other tech support to our customers for those “older” versions several years after a new version ships. We of course encourage they purchase the upgrade but we certainly would never force them to upgrade especially if they just purchased 7 months ago and found an issue in that version.

Is there a free upgrade for customers that purchased such a short time ago?

Can you tell me with certainty that this issue is fixed in version 9? This has been reported by others on the forum!

neillans
Posts: 536
Joined: Sat Nov 04, 2006 6:21 am
Location: Scottish Borders, UK
Contact:

Postby neillans » Fri Oct 02, 2009 3:32 pm

John,

I have already responded to your support ticket.
Andy Neillans

Roostar2004
Posts: 155
Joined: Mon Nov 12, 2007 11:59 am

Solution?

Postby Roostar2004 » Wed Oct 28, 2009 4:47 pm

Has then been a solution for this yet? I am currently testing patching on our system and runing into the same problem. I am using Installaware 9(Build Moya.sp1.070409)

When we build out full install set we are it looking at all of the files for our applications. For out patches in the MSI code I have it looking at only a specific set of files. In this case it is an .exe and a .sql file.

I have narrowed down what is causing the problem for me. In this case it is my .sql file with the name __createMSDb.sql. If I remove the "__" it works. I am not sure how many other files will cause this problem but it needs to be fixed. We currently cannot do any patches to our software until this works correctly.

Roostar2004
Posts: 155
Joined: Mon Nov 12, 2007 11:59 am

??

Postby Roostar2004 » Mon Nov 09, 2009 10:44 am

???

neillans
Posts: 536
Joined: Sat Nov 04, 2006 6:21 am
Location: Scottish Borders, UK
Contact:

Postby neillans » Mon Nov 09, 2009 5:23 pm

Strange.... I'll see if we can find anything relating to the inclusion of underscores causing problems with MSI. I'm wondering if this is an indication of a reserved character ....
Andy Neillans

huevo
Posts: 7
Joined: Mon Jul 23, 2007 5:58 pm

Re: Patch problem--now reproducible

Postby huevo » Tue Jul 13, 2010 5:34 pm

I just tested the patch problem I reproduced above on InstallAware 9R2 (Build Moya.sp3.070910); it still exhibits the exact same problem.

As to underscores: My problem has nothing to do with underscores; I can change a filename by one character and the problem goes away. I suspect that the fact removing underscores fixed Roostar's .SQL file has nothing to do with the underscores and actually is due changing the name at all.

I haven't heard anything from InstallAware since just after I posted on this problem in September 2009 (!), other than the sparse commentary you see above. For others who may be stuck with this, here's how I worked around it: I create a full install every time and treat it as a patch. I make sure that no files are removed upon uninstall (as the new install uninstalls the old one before installing itself), and then I only include the files I want to update (to keep install sizes down, I don't include the files that haven't changed). Obviously it's a ridiculous and untenable situation, but at least I could still use the Web Update feature to distribute the "patches" and thus didn't have to completely restructure my update distribution system in midstream.

iti
Posts: 26
Joined: Mon Oct 19, 2009 7:05 am
Location: Dresden, Germany
Contact:

Re: Patch problems: ...file cannot be found in cabinet file

Postby iti » Fri Jul 16, 2010 3:14 am

this seems to be the same problem we have here: viewtopic.php?f=2&t=5776


Return to “Technical Support”

Who is online

Users browsing this forum: No registered users and 144 guests