Limited time promo

Installation package bundle

English

This help topic applies only to novaPDF. If you don't have it yet, you must download it first.

Download now Buy licenses
Feb 16, 2023
novaPDF 11.x
We strive to keep our help as accurate as possible. If you notice any inconsistencies or outdated info please let us know.
This is a sample on how to compress the msi installations packages in a bundle and generate an setup executable to install novaPDF SDK.
If you haven't already done so, you will need to install the Wix Toolset to build this project.
The project contains two files:
  1. Variables.wxi - contains variables for application name, company name, version,...; it's important to change the UpgradeCode to an unique new GUID for your application
  2. Bundle.wxs - contains the msi files that need to be included and the execution order;.Net Framework 4 is required by novaPDF SDK and is set as prerequisite
Variables.wxi
<?xml version="1.0" encoding="utf-8"?>
<Include>

  <?define BundleName="My SDK Application Bundle"?>
  <?define BundleName="My OEM Application Bundle"?>
  <!--change the UpgradeCode to an unique new GUID for your application-->
  <?define UpgradeCode="F53B2A6F-4A93-499B-B2A6-37709B8EA859"?>
  <?define UpgradeCode="82EB2ED9-8D38-442D-87E4-73DAC9BD2D1B"?>

  <?define AboutUrl='http://www.novapdf.com'?>
  <?define SplashImage=" "?>
  <?define IconFile=" "?>

  <?define MyLicenseFileName="C:\ProgramData\Softland\novaPDF <%VERSION_MAJOR%>\nPdfSdk<%VERSION_MAJOR%>_Softland\nPdfSdk<%VERSION_MAJOR%>_SoftlandEulaExt.rtf" ?>
  <?define MyLicenseFileName="C:\ProgramData\Softland\novaPDF <%VERSION_MAJOR%>\nPdfOem<%VERSION_MAJOR%>_Softland\nPdfOem<%VERSION_MAJOR%>_SoftlandEulaExt.rtf" ?>

  <!--version-->
  <?define MajorVersion="<%VERSION_MAJOR%>"?>
  <?define MinorVersion="0"?>
  <?define BuildNumber="1"?>

  <!--manufacturing-->
  <?define Manufacturer="<My SDK Company Name>" ?>
  <?define Manufacturer="<My OEM Company Name>" ?>

  <!--product name-->
  <?define ProductName="<My SDK Application Name>"?>
  <?define ProductName="<My OEM Application Name>"?>

  <!--full product name-->
  <?define FullProductName="$(var.ProductName) $(var.MajorVersion)" ?>

  <!--bundle specific-->
  <?define DriverKit86="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>PrinterDriver(x86).msi"?>
  <?define DriverKit64="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>PrinterDriver(x64).msi"?>

  <?define COMPathx64="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>COM(x64).msi"?>
  <?define COMPathx86="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>COM(x86).msi"?>

  <?define OemKit86="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>SDK(x86).msi"?>
  <?define OemKit64="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>SDK(x64).msi"?>

  <?define ToolsKit="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\SDK\Branding\novaPDF<%VERSION_MAJOR%>Tools.msi"?>
  <?define DriverKit86="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\OEM\Branding\novaPDF<%VERSION_MAJOR%>PrinterDriver(x86).msi"?>
  <?define DriverKit64="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\OEM\Branding\novaPDF<%VERSION_MAJOR%>PrinterDriver(x64).msi"?>

  <?define OemKit86="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\OEM\Branding\novaPDF<%VERSION_MAJOR%>OEM(x86).msi"?>
  <?define OemKit64="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\OEM\Branding\novaPDF<%VERSION_MAJOR%>OEM(x64).msi"?>

  <?define ToolsKit="C:\Users\Public\Documents\novaPDF <%VERSION_MAJOR%>\OEM\Branding\novaPDF<%VERSION_MAJOR%>Tools.msi"?>

</Include>
Bundle.wxs
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
     xmlns:bal='http://schemas.microsoft.com/wix/BalExtension'
     xmlns:swid="http://schemas.microsoft.com/wix/TagExtension"
      xmlns:dotNet="http://schemas.microsoft.com/wix/NetFxExtension">

  <?include "Variables.wxi"?>
  <Bundle Name="$(var.BundleName)"
          Version="$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber).0"
          Manufacturer="$(var.Manufacturer)"
          UpgradeCode="$(var.UpgradeCode)"
          AboutUrl='$(var.AboutUrl)'
          SplashScreenSourceFile='$(var.SplashImage)'
          Compressed='yes'
          IconSourceFile="$(var.IconFile)" >

    <swid:Tag Regid="regid.2008-09.org.wixtoolset" />

    <!--change the UpgradeCode to an unique new GUID for your application-->
    <RelatedBundle Id="$(var.UpgradeCode)" Action="Upgrade"/>

    <!--application license-->
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
      <bal:WixStandardBootstrapperApplication LicenseFile="$(var.MyLicenseFileName)" SuppressOptionsUI="yes"/>
    </BootstrapperApplicationRef>

    <Chain>
      <!--prereqs-->
      <PackageGroupRef Id="NetFx40Web"/>

      <!--COM-->
      <MsiPackage Id="COMx86$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes" 
                CacheId="COMIdx86$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                EnableFeatureSelection="no" ForcePerMachine="yes"
                Compressed="yes" SourceFile="$(var.COMPathx86)" Visible="yes" Vital="yes">
      </MsiPackage>

      <MsiPackage Id="COMx64$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes" 
                  CacheId="COMIdx64$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                  EnableFeatureSelection="no" ForcePerMachine="yes"
                  Compressed="yes" SourceFile="$(var.COMPathx64)" Visible="yes" Vital="yes" InstallCondition="VersionNT64">
      </MsiPackage>

      <!--driver-->
      <MsiPackage Id="DriverPackagex86.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes"
                  CacheId="DriverPackageIdx86.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                  EnableFeatureSelection="yes" ForcePerMachine="yes"
                  Compressed="yes" SourceFile="$(var.DriverKit86)" Visible="yes" Vital="yes" InstallCondition="NOT VersionNT64">

      </MsiPackage>

      <MsiPackage Id="DriverPackagex64.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes"
                  CacheId="DriverPackageIdx64.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                  EnableFeatureSelection="yes" ForcePerMachine="yes"
                  Compressed="yes" SourceFile="$(var.DriverKit64)" Visible="yes" Vital="yes" InstallCondition="VersionNT64">
      </MsiPackage>

      <MsiPackage Id="NovaPDFTools$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes"
                  CacheId="NovaPDFTools$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                  EnableFeatureSelection="no" ForcePerMachine="yes" SuppressSignatureVerification="yes"
                  Compressed="yes" SourceFile="$(var.ToolsKit)" Visible="yes" Vital="yes">
      </MsiPackage>

      <!--oem product-->
      <MsiPackage Id="OemPackagex86.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes"
                  CacheId="OemPackageIdx86.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                  EnableFeatureSelection="no" ForcePerMachine="yes"
                  Compressed="yes" SourceFile="$(var.OemKit86)" Visible="no" Vital="yes" InstallCondition="NOT VersionNT64">

      </MsiPackage>

      <MsiPackage Id="OemPackagex64.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" Cache="yes"
                  CacheId="OemPackageIdx64.$(var.MajorVersion).$(var.MinorVersion).$(var.BuildNumber)" DisplayInternalUI="no"
                  EnableFeatureSelection="no" ForcePerMachine="yes"
                  Compressed="yes" SourceFile="$(var.OemKit64)" Visible="no" Vital="yes" InstallCondition="VersionNT64">
      </MsiPackage>

    </Chain>
  </Bundle>

  <Fragment>
    <!--UI-->
    <UI Id="MyWixUI_Mondo">
      <UIRef Id="WixUI_Mondo"/>
      <UIRef Id="WixUI_ErrorProgressText"/>
    </UI>
  </Fragment>

</Wix>