cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Martin
Level 5

Patch Design, Building Patch fails with -6415

After building multiple patches using tje Patch Design option of Installshield I ended up with an unsolvable error message:

ISDEV : error -6415: There was an error creating the patch package. Writing contents of log file 'c:\temp\msi\patch\PatchConfiguration1\Interm\PatchCreation.log' to output window.

***** Log starting: 2009-10-12 11:28:11 *****

Input-PCP path = 'c:\temp\msi\patch\PatchConfiguration1\Interm\PatchTemplate.pcp'
Patch-MSP path = 'c:\temp\msi\patch\PatchConfiguration1\Patch\PatchConfiguration1.msp'
Temp Folder = 'C:\DOCUME~1\Arms01\LOCALS~1\Temp\~pcw_tmp.tmp\'
Patch GUID = '{5392873D-745A-43D0-AB2E-066E3BB6B661}'
ListOfPatchGUIDsToReplace = ''
ListOfTargetProductCodes = '*'
PatchSourceList = 'PatchSourceList'
AllowProductCodeMismatches = '1'
AllowProductVersionMajorMismatches = '1'
OptimizePatchSizeForLargeFiles = '0'
ApiPatchingSymbolFlags = '0x00000000'
MsiFileToUseToCreatePatchTables = ''
SqlCmdToCreatePatchTable = ''
SqlCmdToCreatePatchPackageTable = ''
SqlCmdToCreateMsiPatchHeadersTable = ''
DontRemoveTempFolderWhenFinished = '0'
IncludeWholeFilesOnly = '1'
MinimumRequiredMsiVersion = '200'
SEQUENCE_DATA_GENERATION_DISABLED = '0'
AllowRemoval = ''

Using internal SQL cmd to create 'Patch' table.
Using internal SQL cmd to create 'PatchPackage' table.
Using internal SQL cmd to create 'MsiPatchHeaders' table.

ERROR: UpgradedImages.Family string is invalid or does not match a Family record; use 1 to 8 alphanumeric characters. Upgraded image: 'Latest1'; Family: 'Family1'.

***** Log finishing: 2009-10-12 11:28:17 *****

Any idea what to do to solve the "Family string is invalid" error?

Thanks in advance,
Martin.
Labels (1)
0 Kudos
(1) Reply
Martin
Level 5

One day later I found the solution myself but to my opinion it's not really straight forward therefore I post the (a?) solution.

The error message is caused by the fact that the msi contains more than 32767 files. Patching such MSI fails because the FileSequenceStart column of the ImageFamilies table in de PCP file is a 2 byte integer. Modifying the templates at their source location:
C:\Program Files\Acresso\InstallShield 2009\Support\QuickPatch.pcp
C:\Program Files\Acresso\InstallShield 2009\Support\PatchTemplate.pcp

Export the ImageFamilies table, replace I2 by I4 for the FileSequenceStart column and re-import the table. The first file listed is used when using the QuickPatch option, the second file is used when using the Patch Designer.

I don't understand why building the MSI with more than 32767 files succeeds but patching it without user intervention is impossible.
0 Kudos