This is a sample on how to compress the msi installations packages in a bundle and generate an setup executable to install novaPDF OEM.
If you haven't already done so, you will need to install the Wix Toolset to build this project.
The project contains two files:
- 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
- Bundle.wxs - contains the msi files that need to be included and the execution order; .Net Framework 4 is required by novaPDF OEM and is set as prerequisite
Variables.wxi
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< Include >
<? define BundleName="My OEM Application Bundle" ?>
\<! change the UpgradeCode to an unique new GUID for your application >
<? define UpgradeCode="82EB2ED9-8D38-442D-87E4-73DAC9BD2D1B" ?>
<? define AboutUrl='http://www.novapdf.com' ?>
<? define SplashImage=" " ?>
<? define IconFile=" " ?>
<? define MyLicenseFileName="C:\ProgramData\Softland\novaPDF 11\nPdfOem11_Softland\nPdfOem11_SoftlandEulaExt.rtf" ?>
\<! version >
<? define MajorVersion="11" ?>
<? define MinorVersion="0" ?>
<? define BuildNumber="1" ?>
\<! manufacturing >
<? define Manufacturer="<My OEM Company Name>" ?>
\<! product 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 11\OEM\Branding\novaPDF11PrinterDriver(x86).msi" ?>
<? define DriverKit64="C:\Users\Public\Documents\novaPDF 11\OEM\Branding\novaPDF11PrinterDriver(x64).msi" ?>
<? define OemKit86="C:\Users\Public\Documents\novaPDF 11\OEM\Branding\novaPDF11OEM(x86).msi" ?>
<? define OemKit64="C:\Users\Public\Documents\novaPDF 11\OEM\Branding\novaPDF11OEM(x64).msi" ?>
<? define ToolsKit="C:\Users\Public\Documents\novaPDF 11\OEM\Branding\novaPDF11Tools.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 " />
\<! 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 >