0

I am using Wix Toolset v3.7 to create an MSI package for an application. The problem is that one of the files to be packaged has a size more than 4 GB. As a result the MSI generation fails with this error:

some_file.dat" is too large, file size must be less than 2147483648.

I have searched for a solution to this problem but haven't got any specific pointers yet. Does anybody know how to approach this using Wix? Any way a file can be specified to be split into cabs and remerged on unpacking?

Yan Sklyarenko
  • 31,557
  • 24
  • 104
  • 139
Vikas Bhargava
  • 691
  • 1
  • 9
  • 22

2 Answers2

1

Per File Table (Windows)

The FileSize column is a DoubleInteger which can only represent –2,147,483,647 to +2,147,483,647 bytes. There are also other limitations in the size of a CAB and size of an MSI. These are someone annoying limitations but it is pretty rare an installer needs to ship a file larger then 2GB.

WiX is built on Windows Installer so you are kinda stuck. Is your installer distributed via media? You might want to use a custom action copy the file manually. Another thought would be to split the file into pieces and then use a custom action to join them. Tough choices.

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
0

1) You could split the file with a common zip/package tool before the msi build, and use that tool as a custom action to put them together. Of course you can write such a tool on your own too. Then the parts of that file are handled in a standard way by MSI (before your final merge action comes).

2) If you don't need all the msi stuff for that file you could just avoid putting the big file in the msi and just use a tool to build a selfextracting .exe. This could start the msi and copy the file itself by a script. Maybe the easiest way.

3) With the DuplicateFiles table in MSI you can try to copy the file as a custom action in MSI itself. With or without the selfextracting .exe idea. Without means that the big file stays uncompressed besides the .msi. With means you have all compressed in that .exe.

Philm
  • 3,448
  • 1
  • 29
  • 28