WinAppMigrator

Big Apps

Windows cannot start a program file of 4 GiB or more. So an installer whose package would pass that size comes as two files: a small .exe, and a data file beside it ending in .wamdata. This page explains how that works and how to keep them together.

When It Happens

The build compresses the app as it goes. If the finished installer fits in one file, you get one file, however big the app was before compressing. Only when it would not fit do you get two.

The line is 1 MiB short of 4 GiB, which leaves room for a signature if you sign the installer later.

What You Get

For an app called Fabrikam Data Sync you would get, side by side:

File What it is
Fabrikam_Data_Sync_installer.exe The loader: the installer program, with a short note at its end that holds the data file's length and hash
Fabrikam_Data_Sync_installer.wamdata The data file: the app's package

The done screen shows both, as Installer and Data File, under an amber message:

This app is too big for one executable, so its installer is two files, Fabrikam_Data_Sync_installer.exe and Fabrikam_Data_Sync_installer.wamdata. They have to stay together: copy both to the other PC, into the same folder, with these names. If you sign the installer, that signature also covers the data file.

Keep Them Together

If anything is wrong, the installer stops before it reads anything from the data file, and says what to do:

What you see What to do
"this installer keeps its package in a file named" the data file, "in the same folder, and that file is not there" Copy the .wamdata file into the same folder as the .exe.
the data file "is not this installer's data file, or it is damaged or was changed after it was built" Copy both files again, from where they were built.
the data file "is a link or a folder" Copy the real file in its place.
"this installer's data file" "could not be opened" Make sure the folder is on a drive this PC can read.

Once the installer has checked the data file, it holds it open so that nothing can change it while it runs.

Copying to a USB Drive

A drive formatted as FAT32 cannot hold a file of 4 GiB or more. Use a drive formatted as NTFS or exFAT to carry a big installer.

The same goes for building: if the output folder is on a FAT32 drive, a build that large stops when it gets that far. A FAT32 or exFAT output folder also makes the build keep its working files in Windows' temp folder, so the system drive needs room too.

Room Needed to Build

The room the app asks for is the most a build could take. It cannot know ahead of time how well files will compress, so it assumes they will not. A package of over 4 GiB before compressing is allowed at least 8 GiB, in case it compresses small enough for one file and has to be copied once more. Each runtime it downloads is counted as 150 MiB.

So the app can stop a build, for lack of room, on a drive the installer would have fitted on. If that happens, choose an output folder on another drive.

Signing a Two-File Installer

Sign the .exe only. The data file is not a program, and has nothing to carry a signature. The note at the end of the .exe holds the data file's hash, and the signature covers that note, so it covers every byte of the data file through it:

A signed loader without its data file installs nothing, and says what is missing. An unsigned loader proves as much as any other unsigned installer, which is nothing. See Privacy and security.

What Has Been Tested

A test on GitHub's machines builds, installs, and checks a real package of over 4 GiB, with one real file of over 4 GiB of data that does not compress. Another changes the data file by one byte, swaps in another package, cuts it short, removes it, and replaces it with a link, and checks each is refused. See CI jobs.

Last changed 2026-11-11. Describes WinAppMigrator as of its latest release, 0.6.0.