BUG: Windows Installer Fails to Copy All Files when Using Multiple Cabinets (223058)



The information in this article applies to:

  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional
  • Microsoft Windows Installer 1.0
  • Microsoft Windows Installer 1.1

This article was previously published under Q223058

SYMPTOMS

The Windows Installer does not support installing from cabinet (CAB) files when more than 15 files are split across two cabinet files (two CABs each containing pieces of 15 different files). If this situation occurs, the user does not receive an error even though not all files in the two cabinet files are installed.

Note that the above problem is different than splitting 1 file across 2 cabinets 15 times in your package. The situation occurs only when the cabinet engine splits multiple files across the same two cabinets.

CAUSE

When an entire file is not in the first cabinet, a filecopy operation is put on the stack. The stack size is limited to 15. When the second cabinet is encountered, only the 15 filecopy operations on the stack are executed. The remaining filecopy operations will not run.

RESOLUTION

The number of files spanning from one cabinet to the other should be reduced to 15 or below.

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Because the compression technology operates on 32 KB blocks, when it reaches a disk boundary, all files that fall within the current 32 KB block get "split" over to the next disk. Thus, packages that contain large numbers of small files are likely to run into this problem. For example, if a package has 1000 consecutive files, each 200 bytes in size, 164 files (32KB/200) would be split to the next disk when the compressor reaches the disk boundary.

REFERENCES

See the topic "Cabinet Files" in the Windows Installer Help file:, Msi.chm.

Modification Type:MajorLast Reviewed:12/11/2003
Keywords:kbAppSetup kbBug KB223058