Page 1 of 1

IA9 Patch Error: the file cannot be found in cabinet file

Posted: Mon Feb 22, 2010 3:34 am
by you
When I try to install a patch, I got an error message.
The file 'FSleep7e17cFSleeepBefore.' cannot be installed because the file cannot be found in cabinet file 'PCW_CAB_EE1CB1D1'. This could...
The installer Project Settings are:
Build Setting -> Build Type: Compressed Web-Based EXE
Setup Architecture -> Files: (only has one file)
Source Files: C:\\Test\\FSleepBefore.xml
Target Folder: $TARGETDIR$

The attached is the Source files. You can quickly make a small installer like it and easily reproduce it !!!!!

I had also made another test. Changed the file name FSleeepBefore.xml to FSleep.xml, this time all worked well. It seemed the error is related with the file name.

So anybody can tell me why this error happended, and how to solve it.

File Attached:

Test.zip

Posted: Mon Feb 22, 2010 3:44 am
by iti
Same error here. We have exactly the same problem. The creation of the patch works fine but when we apply the patch to an installation an error occurs telling that file "XYZ" could not be found in cabinet file "PCW_..."

Posted: Mon Feb 22, 2010 10:47 am
by iti
A difference I see in your example is that the 2 xml files have different line-endings.

Maybe IA is not able to handle that. I'm going to investigate what the difference is with our files here but I don't think that we have this problem with our patching.

Posted: Mon Feb 22, 2010 8:43 pm
by you
iti wrote:A difference I see in your example is that the 2 xml files have different line-endings.

Maybe IA is not able to handle that. I'm going to investigate what the difference is with our files here but I don't think that we have this problem with our patching.
sorry, I had made a file attached which was misleading. The "(ver1)" and "(ver2)" should be deleted when generating install and patch.

the steps are:
1. Extract Test.zip to C:\2. rename FSleepBefore(ver1).xml and FSleepBefore(ver2).xml to FSleepBefore.xml
3. build web_based EXE
4. delete C:\\Test
5. rename C:\\Test2 to C:\\Test
6. build Patch
7. run .exe file in Release\\WEB
8. run .exe file in Patch

Posted: Mon Mar 01, 2010 9:34 pm
by you
Hello! Any progress?
Why there is not any reply?

Posted: Mon Mar 01, 2010 9:43 pm
by you
Hello, any Progress?
why there is not any reply?

Posted: Tue Mar 09, 2010 10:06 am
by iti
I'm interested in a solution, too. Is this a bug in IA9?

Re: IA9 Patch Error: the file cannot be found in cabinet fil

Posted: Tue Mar 09, 2010 12:40 pm
by MichaelNesmith
Are you setting NOHARDLINKS to TRUE? (it's a compiler variable)

Re: IA9 Patch Error: the file cannot be found in cabinet fil

Posted: Thu Mar 11, 2010 1:54 am
by iti
Thank you for the reply.

Yes, I set it to true as described somewhere in the help file. I try to create a minimal example. I think the problem happens with resource files (.r) of our application which are binary files. I also tried to patch "whole files only" with the same result.

Re: IA9 Patch Error: the file cannot be found in cabinet fil

Posted: Fri Mar 12, 2010 10:41 am
by martinw
Same problem here, any solution anyone?

Re: IA9 Patch Error: the file cannot be found in cabinet fil

Posted: Thu Jun 17, 2010 1:26 pm
by ckey
I am having the same issue while trying to patch in IA9 R2. When I run the patch I get the error '... file cannot be found in cabinet file ...' I changed my project options to 'Leave debug files' while creating the patch and I am able to see the 'missing' file in the cabinet file. Why can't it find it when it is installing the patch? Any resolution to this?

Re: IA9 Patch Error: the file cannot be found in cabinet fil

Posted: Thu Jun 17, 2010 9:45 pm
by MichaelNesmith
I would bring the following topics from the help file to your consideration, maybe they will help solve the issue:
Upgrading from InstallAware 8.x

Upgrading setups created in InstallAware 8.x to InstallAware 9 is automatic. Simply open your project in the new IDE as before and continue working normally.

However, the considerations below apply while working with older projects:

If you plan to patch setups created with versions of InstallAware before 9.0 with patches built with InstallAware 9, set the pre-defined compiler variable #LONGCOMPONENTS# to TRUE. This will ensure that InstallAware 9.0 generates MSI components using a long naming scheme that is identical to the one used in prior InstallAware versions.
So, if any of your old patch references that you are building your patches against are built with different settings as described above (and below), you can fix those settings and then try again.
Upgrading from InstallAware 7.x

Upgrading setups created in InstallAware 7.x to InstallAware 8 is automatic. Simply open your project in the new IDE as before and continue working normally.

However, the considerations below apply while working with older projects:

If you plan to patch setups created with versions of InstallAware before 7.5 with patches built with InstallAware 8, disable all of the new compiler optimizations. This will generate setup packages the same way they were created in InstallAware versions before 7.5 and avoid any issues that may arise with patching. InstallAware versions 7.5 and higher feature the same compiler optimizations and will be safe to patch against, as long as you observe the same compiler optimizations in your original and patch versions.