Deploying Packages with files greater than 5 GB

Packages in PDQ Connect have a 5 GB file size limit for individual files. This article walks you through how to build a custom package that contains individual files larger than 5 GB. 

Most deployments don't contain individual files greater than 5 GB but some applications may contain individual files that exceed 5 GB. This guide uses Revit 2025 as an example, but the same steps can apply to most packages that contain individual files larger than 5 GB where the installer needs to be ran from the same directory as the additional files. The steps used in this guide will preserve the original directory structure of the folder containing the installer and additional files. 

Considerations

This guide assumes that you have already obtained the installation files from the software vendor. 

This guide requires the use of 7-Zip, a 3rd party tool that is included in our Package Library, on the source computer hosting the package files and the target computer. If your target computers do not already have 7-Zip, or you do not wish to keep 7-Zip installed on your target computer after the deployment, additional package steps are detailed to include an install & uninstall of 7-Zip.  

If a configuration file is required for the deployment (in this example, Collection.xml) verify that the DeploymentImagePath value is configured to point to the directory on the target computer where the installer will be copied to and ran from. In this example, we will be copying the compressed files to C:\temp\Revit2025, and the install files will reside in C:\temp\Revit2025\image once the compressed files are combined & un-zipped, making C:\temp\Revit2025\image the required DeploymentImagePath value for Collection.xml

The target computer will need enough free disk space to temporarily store the compressed files and the un-zipped files simultaneously during the deployment. The free disk space should be at least double the size of the un-zipped files (e.g., if the size of the package files is 15 GB, there must be at least 30 GB of free disk space on the target computer to perform the deployment.) 

Rundown

In short, the steps to be taken are: 

Use 7-Zip to zip & split the directory that contains the installer and all additional files, keeping each individual file under 4 GB. 

Create a new custom package in PDQ Connect using the following steps: 

File Copy Step to copy the files to a temporary directory on the target. 

Script Step to use 7-Zip to combine and un-zip the compressed files.

Script Step to run the installer from the source directory containing the package files. 

Script Step to clean up the package files from the temporary directory. 

How to include an install & uninstall of 7-Zip at the beginning and end of the deployment. 

Using 7-Zip to zip & split the package files

Install 7-Zip on the computer that contains the package files, if it is not already installed. If this computer is in Connect, you can use the pre-built 7-Zip package from the Package Library. 

Launch 7-Zip and navigate to the directory containing the installer and additional files. 

Highlight every file in the directory and click Add

7Z1.png

 

Change the Archive Format option to zip

In the Split to volumes, bytes dropdown, select 4092M - FAT. This will split the zip file into individual files that are up to 4 GB each, with one file likely being smaller if the size of the package has a remainder when dividing by 4. 

7Z2.png

Click Ok to zip & split the files. There will now be multiple files in that directory that have an additional file extention of incrementing numbers (e.g., image.zip.001, image.zip.002, image.zip.003, image.zip.004, etc.) These are the files we will attach to first step of the package, and can be moved out of the source directory once completed. 

7Z3.png

Create the custom package in Connect

In the Properties tab, configure the timeout for enough time to allow for the files to download and the installation to run. In this example I set it to 120 minutes, but most of my tests completed in under 30 minutes. 

PackageProperties.png

Package Step 1 (Copy Files): 

Add a File Copy Step, and select Upload Files in the Attachments field, and attach the split zip files. 

In the Target folder field, enter the directory to copy the split zip files. In this example, I am copying the files to C:\temp\Revit2025

Check the box Overwrite existing files

PackageStep1.png

Package Step 2 (Combine & Un-Zip): 

Add a Script Step and set the Type field to CMD

Use the 7-Zip command line to combine & un-zip the split zip files. The command example below will work if you copied the split zip files to C:\temp\Revit2025, otherwise you will need to edit the path to the split zip files and the output path. 

"C:\Program Files\7-Zip\7z.exe" x "C:\temp\Revit2025\image.zip.001" -o"C:\temp\Revit2025\image"

This will combine & un-zip the split zip files into C:\temp\Revit2025\image, while preserving the original directory structure of the source. 

PackageStep2.png

Package Step 3 (Install): 

Add a Script Step, and set the Type field to PowerShell

This is where it gets a bit tricky. During most deployments, the package files are ran from a temporary directory located in C:\ProgramData\PDQ\PDQConnectAgent\Downloads. We can't run our installer from there though, because the installer needs to be ran from the same directory that contains the additional files. To work around this, we will use the cd command to set the working directory to the location of the installer, and then run the installer from there. The command example below will work for Revit 2025 2.9.0.7 if you copied the split zip files to C:\temp\Revit2025, otherwise you will need to edit the path to the working directory and path to the configuration file. 

If you're deploying a different application, you will need to consider the following in the command: 

  • Make sure the path in the cd command points to the directory from Step 1.
  • Dot source .\ the installer.
  • Configure the proper command line parameters.
  • If there is a configuration file, use the full path to it. 
cd C:\temp\Revit2025\image

.\Installer.exe -i deploy --offline_mode -q -o "C:\temp\Revit2025\image\Collection.xml" --installer_version "2.9.0.7"

If you need to include any additional success codes, add them to the Success codes field. 

PackageStep3.png

Package Step 4 (Clean up): 

Add a Script Step, and set the Type field to PowerShell

Use the Remove-Item PowerShell cmdlet to delete the directory from the File Copy Step, in this example C:\temp\Revit2025. The command example below will work if you copied the split zip files to C:\temp\Revit2025, otherwise you will need to edit the path. 

Remove-Item -Path "C:\temp\Revit2025" -Force -Recurse

PackageStep4.png

Optional: Install & Uninstall 7-Zip as part of the deployment

If your target computers do not have 7-Zip installed, you can easily include it in the deployment. There are multiple ways to accomplish this but, for this example, we are going to keep the main install package as-is and create a second package using Nested Steps. 

Create a new custom package. 

In the Properties tab, configure the timeout for enough time to allow for the files to download and the installation to run. In this example I set it to 120 minutes, but most of my tests completed in under 30 minutes. 

Package2Properties.png

Package Step 1 (Install 7-Zip): 

Add a Nested Step, and include the pre-built 7-Zip package from the Package Library. 

Package2Step1.png

Package Step 2 (Main Package): 

Add a Nested Step, and include the new package created in the previous steps. 

Package2Step2.png

Package Step 3 (Uninstall 7-Zip): 

Add a Nested Step, and include the pre-built Uninstall 7-Zip package from the Package Library. 

This step is only necessary if you don't want 7-Zip to remain on the target computers, otherwise it can be excluded. 

Package2Step3.png

Still have a question or want to share what you have learned? Visit our Community Discord to get help and collaborate with others.