PDA

View Full Version : Internal Error 2701. 16



DavidMartin
08-17-2005, 01:39 PM
Hi,

We're currently using Express 5 SP2 where we experienced the same problem I'm detailing here.

We had hoped that Express 11 would fix it, and so downloaded the evaluation version, but the same problem appeared in a test installation set.

In Express 11, I created an install containing a single .exe file. I then created a sequence of 16 Quickpatches, with an updated .exe file in each. Each patch references the previous patches to it in the history sections. I included Windows Installer 2.0 and 3.1 in the patch update.

The first 15 Update.exe files work fine. However, on running the 16th we get the

Internal Error 2701. 16 errror.

This correlates to the Windows Installer Message of 'The Component table exceeds the acceptable tree depth of [2] levels.', where the 16 maps to the [2].

So essentially, due to this error, there appears to be a limit on the number of times a file can be patched, or more accurately, the number of times it can appear in the component table?

Is there any way to work around this, other than creating a new install / major update?

Mike Marino
08-17-2005, 10:27 PM
What type of files are you trying to patch, and are you setting the "Always Overwrite" checkbox?

DavidMartin
08-18-2005, 07:54 AM
The file being patched is a Win32 forms application .exe . Each new .exe has been newly compiled with an incremented version number.

And yes, I have the Overwrite Any Existing File checkbox checked in each patch. Could having this checked be causing the problem?

Mike Marino
08-18-2005, 02:14 PM
The problem is how QuickPatch internally operates. QuickPatch uses a number of tricks to get around some MSI 2.0 Limitations. However, this causes each QuickPatch to create sub Features of the original product Features. Thus after 16 patches, we appear to be hitting a MSI limitation of Feature Component tree depth.

In InstallShield Express there is no way around this, short of doing a Major Upgrade. In InstallShield Professional, we have a patch design view which allows you to completely customize how patches work.