Bundling all of the device drivers and the LabVIEW runtime along with your executable in a single installer can be a convenient way to distribute your application, but the result can easily be gigabytes in size, making it cumbersome to store and move around
You only really need all of the drivers the first time you install your application – so it makes sense to separate these into their own installer, and create a second smaller installer that just contains your application’s executable along with any supporting files that have changed
First, set up a Build Specification for the Full Installer as you would normally, including the LabVIEW Runtime and all the required drivers in addition to your application and any support files it uses
Additional Installers
Next, create a copy of the Full Installer by right-clicking on it and selecting Duplicate, and then renaming it
Project with Multiple Installers
By default, LabVIEW will give this new installer its own Upgrade Code, so make sure that you copy the code from the Full Installer. This lets Windows know that both installers are for the same program – see this post for more details
Go into the Build Specification’s properties and remove all of the Additional Installers.
Remove Additional Installers
Now you can build the executable and then the two installers. When you are setting up a new system that doesn’t already have the LabVIEW runtime or drivers, you will need to use the Full Installer but for other updates you can use the much smaller Update Installer
You may run into some issues if you are not careful with the versions of the executable packaged inside each installer
The installer can get pretty confused if you try to ‘upgrade’ to an earlier version by mistake. When doing some tests, I had expected the installer to simply refuse to overwrite the executable if the existing file had a higher version number, but instead I found that it would actually delete the exe, leaving the rest of the folder structure intact
Where’s my exe?
Running the installer again would then say there was a newer version already installed, but by then it was too late
The best advice I’ve seen (from this thread on NI’s forum) is to create a Full Installer and leave it as v1.0, then update just the Upgrade Installer whenever a new exe is built. This guarantees that the updated exe version will always be higher than the existing version, without having to resort to scripting to keep everything in sync