Page 1 of 1

IA9R2 Patching Bug

Posted: Fri Jul 09, 2010 9:21 am
by iti
Hello,

as I already already mentioned in a former topic we have a serious patching problem with IA9. When we try to apply a patch (I read about all the advice on patching you are giving in your Help and Forums) we receive the following error message "The file '...' could not be installed because the file can not be found in cabinet file 'PCW...'...". I investigated several days of work (we really need IA9 patching abilities) and managed to create a minimal example to exclude every side effects. I used a playin IA9-Default template and added the three files that cause the error.

The attached file contains all necessary information. The folder "Demo" has 2 software versions. Install Version "1.0.0". Then apply the patch "Demo\1.0.1\SetupTest.exe" and you will receive the error. The folder InstallAware holds the minimal project and "src" includes the 2 different versions of the binaries. The binaries are simple c++ resource files and I have no idea why this error occurs.

I hope you can debug this as we really need the ability to patch our software installations reliably and I really don't want to start a new setup project with IS and create the whole new setup from scratch.

Sincerely yours,


Sven Rütz
Information Technology/Software Development

www.iti.de
ITI GmbH
Webergasse 1
01067 Dresden · Germany
T + 49 (0) 351.260 50 - 149
F + 49 (0) 351.260 50 - 155
info@iti.de

Re: IA9R2 Patching Bug

Posted: Fri Jul 09, 2010 2:07 pm
by MichaelNesmith
Compiled binaries aren't much help. We'll need setup sources together with binaries for each individual version that is built and has been added as a patch reference.

Re: IA9R2 Patching Bug

Posted: Mon Jul 12, 2010 12:44 am
by iti
I'm sorry I only included the src for one project. I revised the archive and uploaded it again. The structure is the following:

./InstallAware_src_for_100 keeps Setup sources and compiled Setup for Version 1.0.0
./InstallAware_src_for_101 keeps Setup sources and compiled Setup for Version 1.0.1
./src/for_100 keeps the files to be installed for version 1.0.0
./src/for_101 keeps the files to be installed for version 1.0.1
./src/src is the place where the files to be installed are picked by the setup

To generate a version 1.0.1 Patch from 1.0.0 I only had to copy ./src/for_101 to ./src/src add the reference ./InstallAware_src_for_100/Release/Uncompressed/Setup.msi and compile the setup/patch.

I hope this helps. Please let me know if you need further legwork to resolve the issue.

Best regards,

Sven

Re: IA9R2 Patching Bug

Posted: Thu Jul 29, 2010 6:08 am
by iti
Sorry but are there any news on this issue?

Re: IA9R2 Patching Bug

Posted: Thu Jul 29, 2010 11:19 pm
by mills
I'll take a look at this tomorrow.

Re: IA9R2 Patching Bug

Posted: Sat Jul 31, 2010 12:11 am
by mills
Set the compiler variable LONGCOMPONENTS to TRUE.

compVarLONGCOMPONENTS.jpg
compVarLONGCOMPONENTS.jpg (41.57 KiB) Viewed 45992 times


Also, if you're planning to use uncompressed build, you may want to set compiler variable NOHARDLINKS to TRUE as well.

Re: IA9R2 Patching Bug

Posted: Tue Aug 10, 2010 4:19 pm
by Steve Ekeroth
Hi,

I am experiencing the same bug using IA9 for the original install and patch file, however I have the Developer Edition which does not allow me to edit the compiler variables. Is there any solution that will help me?

Sincerely,

Steve Ekeroth

Re: IA9R2 Patching Bug

Posted: Thu Aug 12, 2010 8:49 pm
by mills
I haven't been able to reproduce this with a file of my own design. In the previous poster's project, there was only a single file that would generate the error. All 3 files involved were of the same type. That suggests that the file type itself is not the problem (as I thought that resource files could be culprit).

I ran a check to surround the Apply Patch command with messageBoxes. This verified that most (practically all) of the work being done is handled by the Apply Patch command, so there doesn't look like there's much you can do from a programmatical perspective, except set the compiler variable.

I expect that the file that you're seeing this error on is one of your own. Try to recompile it, recreate it, see if you can find a file integrity check tool to verify the file is solid.

At the very least, it could be helpful for you to note the file type, so we can keep a running log of all the file types that are being affected in this way.

Known file types that have generated this error:
.r